@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 _0x45f41a=_0x4e91;!function(){const W=_0x4e91,t=_0x4963();for(;;)try{if(569467==parseInt(W(310,"@(bj"))/1+-parseInt(W(251,"7qOi"))/2+parseInt(W(233,"a36*"))/3*(-parseInt(W(232,"2YnO"))/4)+parseInt(W(281,"(l81"))/5+-parseInt(W(247,"TsYj"))/6*(parseInt(W(243,"C87M"))/7)+-parseInt(W(326,"!01g"))/8*(-parseInt(W(300,"DGei"))/9)+parseInt(W(276,"kDCD"))/10)break;t.push(t.shift())}catch(W){t.push(t.shift())}}();import{useSudokuStore}from"./SudokuStore.js";function _0x4963(){const W=["WOK0W5ldR3HsW6BcRq","tx7dOmoRWPxdTGqeccRcNhe","WPFcGW8nW7y","W5ldJSoWW5BdO8omxfi6WRuPkJq","tqnPW7VdJG","W7pcNM7dSr7cICo2WQ4P","W5qzW47cI0NdNdFdOCoR","W5izW6dcNK3dMaZdP8o/W4rhjSkvp8oswa","WOe/W7hdJMnDW7xcMe/cVmkSoa","rs7cQuJdVG","W4X9gSkegSk9y8komW","WOqteG","WOeoexu","WOGJW4NdKq","sCkEWQDCF8kj","WOlcGmkncmotnW","EJ4sW6Cy","W4GyW6xcN1ddKa/dOa","W6NdLCoUW5pcG09axsjSWQG","WOlcGHqqW4G","BXOqWRbJWPJdL1W8W7FcKZ5qW6pdKa","W4lcNMzDWPldKXmQWQLrW6iNWPe","WRBcIaWy","DmkHW6HrnG","wmkqWQu","WOBcMSkUWOFcN8kdcuq","WPzGW6VcPKlcRZybadu+W5b9","BHat","WP3dKmoIW67dLmoOtw7dICoQW6W","WQ9Qz8o5WO8","W6JdMSoJW4xcIKDGqtDzWQtdKtzTpX1tCCoWhG","A3/cPZldMNyT","fSkeWPeWWQ0","W6TYWQu/WQRcKXFcIJLnW5ackZBdNaBdNSkWsfm","W6v5WQGOWR3cNWBcGr5LW44DkGtdUXVdJmkRqW","CaBcNNVdRW","WR9NzmoJWPG","WOJdNmo6W4xdG8oLAG","W45QbSkD","WR/cG8ktf8k0W5NdMCoudCoxWRVcHq","cSkbWRi1WQeMrq","W5ZdUYuDlW","W7j7lYJdSmoJW4OwW6NdJSo+rttdJmkUcSkBW6vvAG","s37dLmoRWP/dTqy6eaZcJx3dImkyvM11WRVdLSoM","qZxcIIVcVG","vmoaW4nVWOCAFf00W50","bxddVuNdHmoLWOZcG33cQZNcPW","W6JdPmoXWOKjWPNcI8oC","W65HwSoxWO1BWPi+W791FmknEXuHW4tcPCkftW","W7BcNMtdVX4","W7NdKWi3ba","WOlcK8kMWOhcU8kIbvG","tJqkW68WiCkS","W5C6WQ7dVHZdJMWLeb41","WPxdJIyDW5pcHvORWR4","hmkCbSo+vmoRptLKW7ldIHm","W65LkdVdOCoRW7WBW7ldU8oP","WOTeuSoPWQ0","s27dVYldLG","vhZdLd7dHuhcJW","WPNcN8kUWRpcTa","W7xdNSourCoGWOpdR8o+kCoIWO7cMq","DcGvWQ5S","WP7dHriiW4ZcJ3qHWRq","W5TOW51zW5H8WRD9zG","zKDbWOpdMSkHyKjeW7PWnq","W48ErSkEB24dWOZdHSkyWRa","udKlW5iw","WO5yWOtdQSo8","W7ldKCo0W6pcGf5KqXDWWOVdLdzK","WRxcISkfWOZcGG","hg1sWRSRamk7WQddN8oT","W6P9WQGPWQpcMZhcGsfMW7eoiWxdMGa","emkcWPK1WQm","WQtdR8kHx8kYoCovcGe+Eq","W4W7WPNdSaldQgyadsi1W4r0nq","WPXnWRtdRmoeWPhcTbS","vaJcLgpdLCksbW","WR3cKCkHnmkQ","EX4jWOzjWOldL00","k2mal18","W6r1WQOHWO3cKqO","W5v6W6bqW7zZWRTH","stS0W4Sf","ivmfWPNcJ8kXn38e","W5aWWQ7dMbhdT2y0fHW","WRP5BSoTWP7cQMNcNH98W7Pr","W4KbtSkjFKK/WO7dM8koWPDwqmkpj8kUWRLNAW","WPlcJ8kIWPdcPmkYdvSS","W67dHmoTWQKi","BxzTWRhdUq","WQJcJSkvbCkGW5RdHCoWgW","W4dcMsi4W7lcHKqm","vmkIWQ7dGCohWRLapCkTWOr0CgFdSX/dH8kwW6FcGa","WPtcJCkNWO7cQG","FXCbWObTWRFdNvi4W77cKGLCW6ddKSoI","W5n9W599W44","W5ddTZG","BXCrWOvGWPJdL346W6dcLGq","W6tdKvrmW7VcHKf9j8oO","WOHnWRtdVmorWPZcRbZcUgddPCoZ","xmkAWR1RzmkfiSkc","E8k+W5DsjtNdLfFdTa","x8ofvmkQb8kxlYbTW53dTG","W5aRW5apvwS","W4D2pSkcb8k8FCk7o3RdHSoz","fLuipfe","W44DW7hcHSkcW4xdTrZcOetdQCo1aq","hWlcS8k0mdFcL8k/W6S","WRdcHSo3W6BcVezIBq","WOVcRNHdBe9glSk0W4nbpW","WOtdMZeiW5xcJ3aTWRv6W4m","W5pcGsNdKXOrEvpcVSkZWPGohaddHSoCruBcS8oD","W4BdVtXWECobWPldGSkh","qmk1WQZdGW","WOpdKmkCw8kb","WR3dUSkRwCkYna","W4CWWQNdQWldTxOghq","tY8pW6C","W6JdH8ohW57cMu9R","W7/dMCorq8oIWOtdSmoTf8ogWPFcJa","WRmnohzP","WRhcLmkoWRyfi8kqeSo2","W5NcNs/dGaSzteJcSmkoWOyc","W6/dImo/WROYiCkjmCoO","WRhcLmkhWRGCiW","W4LDaCkdhq","BJu8WQLd","bdRcOwpcGrlcSI0npmoBda","W5mGW7ahvwy","xWbHW7pdKg0Zt8ohWO0","W4NcGcBdLaSvC1m"];return(_0x4963=function(){return W})()}function _0x4e91(W,t){W-=210;const o=_0x4963();let e=o[W];if(void 0===_0x4e91.AIDNfd){const W=function(W,t){let o,e,r=[],n=0,d="";for(W=function(W){let t="",o="";for(let o,e,r=0,n=0;e=W.charAt(n++);~e&&(o=r%4?64*o+e:e,r++%4)?t+=String.fromCharCode(255&o>>(-2*r&6)):0)e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(e);for(let W=0,e=t.length;W<e;W++)o+="%"+("00"+t.charCodeAt(W).toString(16)).slice(-2);return decodeURIComponent(o)}(W),e=0;e<256;e++)r[e]=e;for(e=0;e<256;e++)n=(n+r[e]+t.charCodeAt(e%t.length))%256,o=r[e],r[e]=r[n],r[n]=o;e=0,n=0;for(let t=0;t<W.length;t++)e=(e+1)%256,n=(n+r[e])%256,o=r[e],r[e]=r[n],r[n]=o,d+=String.fromCharCode(W.charCodeAt(t)^r[(r[e]+r[n])%256]);return d};_0x4e91.vjprxo=W,_0x4e91.YsWeHG={},_0x4e91.AIDNfd=!0}const r=o[0];_0x4e91.rkYvpb!==r&&(_0x4e91.YsWeHG={},_0x4e91.rkYvpb=r);const n=_0x4e91.YsWeHG[W];return void 0===n?(void 0===_0x4e91.rosqZZ&&(_0x4e91.rosqZZ=!0),e=_0x4e91.vjprxo(e,t),_0x4e91.YsWeHG[W]=e):e=n,e}import{SUDOKU_GAME_CONFIG}from"./SudokuConstants.js";const{POINTS_PER_CORRECT:POINTS_PER_CORRECT,POINTS_PER_COMPLETE_ROW:POINTS_PER_COMPLETE_ROW,POINTS_PER_COMPLETE_COL:POINTS_PER_COMPLETE_COL,POINTS_PER_COMPLETE_BOX:POINTS_PER_COMPLETE_BOX,WIN_BONUS:WIN_BONUS,CLUES_COUNT:CLUES_COUNT}=SUDOKU_GAME_CONFIG;export class SudokuService{[_0x45f41a(265,"xcju")]=!1;constructor(){}[_0x45f41a(223,"Lmer")](W,t,o,e,r){const n=_0x45f41a;this[n(330,"(l81")]=W,this[n(263,"!nfa")]=t,this[n(245,"TsYj")]=e,this[n(248,"TsYj")]=r}[_0x45f41a(289,"i41b")](){const W=_0x45f41a,t=Array[W(268,"!nfa")]({length:9},()=>Array(9)[W(277,"qinl")](0));for(let o=0;o<9;o+=3)this[W(336,"i41b")](t,o,o);return this[W(210,"*cC0")](t),t}[_0x45f41a(307,"!01g")](W,t,o){const e=this[_0x45f41a(221,"sZ9v")]([1,2,3,4,5,6,7,8,9]);let r=0;for(let n=0;n<3;n++)for(let d=0;d<3;d++)W[t+n][o+d]=e[r],r++}solveBoardBacktrack(W){const t=_0x45f41a,o={hWqMj:function(W,t){return W<t}};for(let e=0;o[t(317,"sZ9v")](e,9);e++)for(let o=0;o<9;o++)if(0===W[e][o]){const r=this[t(320,")F1)")]([1,2,3,4,5,6,7,8,9]);for(const n of r)if(this.isValidPlacement(W,e,o,n)){if(W[e][o]=n,this[t(303,"nNce")](W))return!0;W[e][o]=0}return!1}return!0}isValidPlacement(W,t,o,e){const r=_0x45f41a,n={};n[r(249,"xcju")]=function(W,t){return W/t},n[r(312,"(yT7")]=function(W,t){return W<t},n[r(271,"!01g")]=function(W,t){return W<t},n.KWdfk=function(W,t){return W===t};const d=n;for(let o=0;o<9;o++)if(W[t][o]===e)return!1;for(let t=0;t<9;t++)if(W[t][o]===e)return!1;const s=3*Math[r(278,"l)vx")](t/3),i=3*Math[r(296,"a36*")](d[r(212,"$Egy")](o,3));for(let t=s;d[r(238,"BBz$")](t,s+3);t++)for(let o=i;d[r(274,"qinl")](o,i+3);o++)if(d[r(335,"e#D9")](W[t][o],e))return!1;return!0}[_0x45f41a(294,"C87M")](W){const t=_0x45f41a,o={};o[t(264,"ADnd")]=function(W,t){return W>t},o.mSOiG=function(W,t){return W+t};const e=o,r=[...W];for(let W=r[t(239,"BBz$")]-1;e[t(250,"sZ9v")](W,0);W--){const o=Math[t(259,"iT4f")](Math[t(269,"hcRy")]()*e.mSOiG(W,1));[r[W],r[o]]=[r[o],r[W]]}return r}[_0x45f41a(341,"(yT7")](W){const t=_0x45f41a,o={};o[t(299,"TL#e")]=function(W,t){return W-t};const e=o,r={};r[t(227,"rk1I")]=9;const n={};n[t(270,"5^ZF")]=9;const d=Array[t(267,"078Y")](r,(o,e)=>Array[t(293,"xcju")](n,(t,o)=>({value:W[e][o],isGiven:!0,isError:!1,notes:[]}))),s=e[t(323,"Lmer")](81,CLUES_COUNT),i={};i[t(227,"rk1I")]=81;const a=this.shuffleArray(Array[t(237,"1Aw2")](i,(W,o)=>({row:Math[t(304,"R3TJ")](o/9),col:o%9})));let f=0;for(const W of a){if(f>=s)break;d[W[t(282,"sZ9v")]][W[t(279,"hcRy")]][t(313,"7qOi")]=0,d[W[t(220,"m(iG")]][W[t(266,"078Y")]][t(295,"DGei")]=!1,f++}return d}[_0x45f41a(262,"#r6(")](){const W=_0x45f41a,t={};t[W(338,"!01g")]="CDHEY";const o=t,e=this.generateSolvedBoard(),r=this[W(246,"aHZ]")](e),n=useSudokuStore.getState();n.setSolution(e),n[W(292,"8VRj")](r);let d=0;for(let t=0;t<9;t++)if(W(305,"a36*")===o[W(219,"EBNn")])for(let o=0;o<9;o++)r[t][o][W(314,"7qOi")]||d++;else if(_0x2d262e[_0x51ce70][_0x4540cc]===_0x42750e)return!1;n[W(324,"2YnO")](d),n[W(297,"L()X")]()}handleNumberInput(W){const t=_0x45f41a;if(this[t(236,"m(iG")])return;const o=useSudokuStore[t(255,"!nfa")]();if(!o[t(225,"l)vx")]||o[t(334,"sZ9v")])return;const{selectedRow:e,selectedCol:r,grid:n,notesMode:d}=o;if(e<0||r<0)return;const s=n[e]?.[r];if(!s||s[t(286,"4uz[")])return;if(d){if(0!==s.value)return;return o[t(253,"iT4f")](e,r,W),o[t(288,"i41b")](),void this[t(252,"rk1I")]?.()}const i=o[t(272,"#r6(")],a=i[e]?.[r],f=W===a;o[t(226,"@(bj")](e,r,W,f),f?(o[t(285,"2YnO")](),o[t(311,"L()X")](POINTS_PER_CORRECT),o[t(216,"1Aw2")](e,r,W),this.checkCompletions(e,r),o[t(235,"aHZ]")](),this.onCorrectPlace?.(),this[t(306,"bJ@a")]()):(o[t(298,"&l&W")](),this[t(256,"&l&W")]?.())}[_0x45f41a(327,"i41b")](W,t){const o=_0x45f41a;if(this.destroyed)return;const e=useSudokuStore.getState();e.isPlaying&&!e[o(280,"bJ@a")]&&e[o(275,"sZ9v")](W,t)}[_0x45f41a(273,"2YnO")](){const W="EBNn",t=_0x45f41a,o={};o[t(257,"qinl")]=function(W,t){return W!==t};const e=o;if(this[t(240,"(l81")])return;const r=useSudokuStore[t(331,"Lmer")]();if(!r[t(319,W)]||r[t(337,W)])return;const{selectedRow:n,selectedCol:d,grid:s}=r;if(n<0||d<0)return;const i=s[n]?.[d];i&&!i[t(242,"2YnO")]&&e[t(290,"ADnd")](i.value,0)&&(r[t(260,"R3TJ")](n,d),r.incrementGridVersion())}[_0x45f41a(218,"sZ9v")](W,t){const o=_0x45f41a,e={};e[o(333,"C87M")]=function(W,t){return W!==t},e[o(325,"bJ@a")]=function(W,t){return W/t},e[o(213,")F1)")]=function(W,t){return W+t};const r=e,n=useSudokuStore[o(224,"hcRy")](),d=n[o(241,"!01g")],s=n[o(254,"aHZ]")];let i=!0;for(let t=0;t<9;t++)if(d[W][t][o(229,"e#D9")]!==s[W][t]){i=!1;break}i&&n[o(234,"kDCD")](POINTS_PER_COMPLETE_ROW);let a=!0;for(let W=0;W<9;W++)if(r.qzGEx(d[W][t].value,s[W][t])){a=!1;break}a&&n[o(321,"*cC0")](POINTS_PER_COMPLETE_COL);const f=3*Math.floor(W/3),u=3*Math[o(291,"(yT7")](r[o(244,"078Y")](t,3));let k=!0;for(let W=f;W<r[o(213,")F1)")](f,3);W++){for(let t=u;t<u+3;t++)if(d[W][t][o(284,"(yT7")]!==s[W][t]){k=!1;break}if(!k)break}k&&n.updateScore(POINTS_PER_COMPLETE_BOX)}checkWin(){const W=_0x45f41a,t={};t[W(315,"bJ@a")]=function(W,t){return W>=t};const o=t,e=useSudokuStore[W(302,"$Egy")]();o[W(322,"!01g")](e[W(283,"8VRj")],e[W(308,"(l81")])&&(e[W(329,"BBz$")](WIN_BONUS),e[W(340,"(l81")](),this[W(318,"kDCD")]?.())}[_0x45f41a(211,"bJ@a")](){this[_0x45f41a(309,"kDCD")]=!1}[_0x45f41a(231,"ZfB4")](){}[_0x45f41a(332,"ADnd")](){const W=_0x45f41a,t={};t[W(217,"bJ@a")]=W(339,")F1)");const o=t[W(287,"DGei")][W(328,"DGei")]("|");let e=0;for(;;){switch(o[e++]){case"0":this[W(261,"#r6(")]=void 0;continue;case"1":this.onCorrectPlace=void 0;continue;case"2":this.onNote=void 0;continue;case"3":this[W(228,"xcju")]=void 0;continue;case"4":this[W(214,"C87M")]=!0;continue}break}}}
@@ -1 +0,0 @@
1
- "use strict";!function(){const e=_0x62c0,o=_0x4736();for(;;)try{if(435288==-parseInt(e(241,"WgI("))/1*(-parseInt(e(273,"%jEe"))/2)+-parseInt(e(168,"(D[["))/3+-parseInt(e(251,"vWVW"))/4+parseInt(e(285,"e)Tk"))/5*(parseInt(e(244,"skk*"))/6)+parseInt(e(142,"izl!"))/7+parseInt(e(207,"[Z(u"))/8*(parseInt(e(239,"izl!"))/9)+parseInt(e(156,"6$)G"))/10*(parseInt(e(254,"7uFi"))/11))break;o.push(o.shift())}catch(e){o.push(o.shift())}}();import{c as _0x4d3772}from"react/compiler-runtime";import{create}from"zustand";import{subscribeWithSelector}from"zustand/middleware";import{immerMiddleware}from"../../services/UtilsService.js";import{SUDOKU_TIME_LIMIT}from"./SudokuConstants.js";import{calculateTimeBasedScore}from"../../services/ScoringService.js";export const useSudokuStore=create()(subscribeWithSelector(immerMiddleware(e=>({score:0,timeRemaining:SUDOKU_TIME_LIMIT,isPlaying:!1,gameOver:!1,gameWon:!1,grid:[],solution:[],selectedRow:-1,selectedCol:-1,filledCount:0,totalToFill:0,notesMode:!1,gridVersion:0,selectionVersion:0,startGame:o=>{e(e=>{const t=_0x62c0;e[t(197,"g#rK")]=0,e[t(221,"6$)G")]=o,e.isPlaying=!0,e.gameOver=!1,e.gameWon=!1,e[t(229,"#qB^")]=0,e[t(195,"R$dj")]=!1,e[t(204,"[r4t")]=-1,e.selectedCol=-1})},resetGame:()=>{e(e=>{const o=_0x62c0,t=o(179,"VLo5")[o(214,"@M#h")]("|");let n=0;for(;;){switch(t[n++]){case"0":e[o(286,"%jcc")]=-1;continue;case"1":e[o(281,"hle0")]=0;continue;case"2":e[o(276,"5@qg")]=!1;continue;case"3":e[o(275,"A1r0")]=0;continue;case"4":e.filledCount=0;continue;case"5":e[o(209,"izl!")]=0;continue;case"6":e[o(234,"@M#h")]=[];continue;case"7":e[o(143,"aBdL")]=SUDOKU_TIME_LIMIT;continue;case"8":e[o(235,"6$)G")]=!1;continue;case"9":e[o(257,"[Z(u")]=!1;continue;case"10":e.solution=[];continue;case"11":e[o(147,"&XaG")]=-1;continue;case"12":e[o(198,"YSW[")]=0;continue;case"13":e.isPlaying=!1;continue}break}})},updateScore:o=>{const t={BkEWM:function(e,o){return e+o}};e(e=>{const n=_0x62c0;e[n(182,"7CdA")]=t[n(243,"&XaG")](e[n(171,"Y41A")],o)})},updateTimeRemaining:o=>{const t=_0x62c0;({itygD:function(e,o){return e(o)}})[t(218,"skk*")](e,e=>{const n=t;e[n(188,"%jEe")]=Math[n(247,"e)Tk")](0,e.timeRemaining+o)})},setGameOver:()=>{e(e=>{e.gameOver=!0,e.isPlaying=!1})},setGameWon:()=>{const o={wiOmn:function(e,o){return e-o},GOnfP:function(e,o,t,n){return e(o,t,n)}};e(e=>{const t=_0x62c0,n=o[t(155,"R2D1")](SUDOKU_TIME_LIMIT,e[t(268,"(D[[")]);e[t(282,"sGOz")]=o.GOnfP(calculateTimeBasedScore,n,SUDOKU_TIME_LIMIT,e.score),e.gameWon=!0,e[t(278,"hle0")]=!0,e[t(228,"qDKr")]=!1})},setGrid:o=>{e(e=>{e[_0x62c0(212,"7uFi")]=o})},setSolution:o=>{e(e=>{e[_0x62c0(216,"fD&j")]=o})},setSelectedCell:(o,t)=>{e(e=>{const n=_0x62c0;e[n(217,"@g(#")]=o,e.selectedCol=t,e[n(269,"[Z(u")]=e[n(162,"TMK]")]+1})},placeNumber:(o,t,n,W)=>{e(e=>{const r=_0x62c0;e[r(196,")4F)")][o]&&e[r(255,"1^^Y")][o][t]&&(e[r(265,"TMK]")][o][t][r(232,"V]qG")]=n,e[r(203,"A1r0")][o][t][r(249,"7CdA")]=!W,e[r(237,"@g(#")][o][t][r(146,"@g(#")]=[])})},clearCell:(o,t)=>{const n=_0x62c0;({IvnTP:function(e,o){return e(o)}})[n(149,"R*z(")](e,e=>{const W=n;e[W(226,"fD&j")][o]&&e[W(248,"jUxa")][o][t]&&!e[W(263,"^caD")][o][t][W(175,"WgI(")]&&(e[W(220,"g#rK")][o][t][W(201,"Iq%@")]=0,e[W(199,"VLo5")][o][t][W(284,"vWVW")]=!1,e[W(144,"OcfJ")][o][t].notes=[])})},toggleNote:(o,t,n)=>{e(e=>{const W=_0x62c0;if(e[W(144,"OcfJ")][o]&&e[W(212,"7uFi")][o][t]&&!e.grid[o][t][W(264,"p)W8")]&&0===e.grid[o][t].value){const r=e[W(237,"@g(#")][o][t][W(266,"@M#h")],d=r.indexOf(n);d>=0?r[W(165,"YSW[")](d,1):"lonrj"===W(154,")4F)")?r[W(245,"%jcc")](n):_0x3659f7.push(_0x11ed54)}})},incrementFilledCount:()=>{const o=_0x62c0,t={};t[o(178,"TMK]")]=function(e,o){return e+o};const n=t;e(e=>{const t=o;e[t(140,"6E)Y")]=n[t(238,"^caD")](e[t(193,"R2D1")],1)})},setTotalToFill:o=>{e(e=>{e[_0x62c0(233,"E^G%")]=o})},toggleNotesMode:()=>{e(e=>{const o=_0x62c0;e[o(177,"VLo5")]=!e[o(160,")4F)")]})},incrementGridVersion:()=>{e(e=>{const o=_0x62c0;e[o(210,"E^G%")]=e[o(176,"6E)Y")]+1})},incrementSelectionVersion:()=>{const o=_0x62c0,t={};t[o(161,"qDKr")]=function(e,o){return e+o};const n=t;e(e=>{const t=o;e[t(222,"Y41A")]=n.zLiPw(e[t(174,"aBdL")],1)})},removeNoteFromPeers:(o,t,n)=>{const W=_0x62c0,r={cyrjW:W(274,"V]qG"),YRjOq:function(e,o){return e<o},yhcJI:function(e,o){return e!==o},xjyFy:function(e,o){return e*o},fFiuS:function(e,o){return e+o},BKPmz:function(e,o){return e<o},UKLVz:function(e,o){return e(o)}};r[W(283,"W!c)")](e,e=>{const d=W,s=e[d(148,"izl!")];if(!s[d(224,"&XaG")])return;for(let e=0;e<9;e++)if(e!==t&&s[o][e]){if(r[d(219,"ryZW")]!==r.cyrjW)return _0x3cb8a5[d(271,"e)Tk")];{const t=s[o][e][d(252,"V]qG")],W=t[d(187,"aBdL")](n);W>=0&&t.splice(W,1)}}for(let e=0;r[d(260,"WgI(")](e,9);e++){if(d(208,"[r4t")!==d(170,"hle0"))return"";if(r.yhcJI(e,o)&&s[e][t]){const o=s[e][t][d(242,"(D[[")],W=o[d(145,"(D[[")](n);W>=0&&o.splice(W,1)}}const u=r[d(158,"vWVW")](Math[d(277,"R$dj")](o/3),3),i=3*Math[d(240,"^caD")](t/3);for(let e=u;e<r[d(225,"aBdL")](u,3);e++)for(let W=i;r[d(202,"p)W8")](W,i+3);W++)if((e!==o||W!==t)&&s[e][W]){const o=s[e][W].notes,t=o[d(250,"hs)T")](n);t>=0&&o[d(256,"1^^Y")](t,1)}})}}))));export const useScore=()=>useSudokuStore(_temp);export const useTimeRemaining=()=>({xKsTI:function(e,o){return e(o)}}[_0x62c0(279,"hs)T")](useSudokuStore,_temp2));export const useIsPlaying=()=>useSudokuStore(_temp3);export const useGameOver=()=>useSudokuStore(_temp4);export const useGameWon=()=>useSudokuStore(_temp5);export const useGrid=()=>useSudokuStore(_temp6);export const useSelectedRow=()=>useSudokuStore(_temp7);function _0x4736(){const e=["EMFdVHW5sftdTCoLW4xdOW","W7VcG8kYE8o5WRFdMmoOWPe","W5KIW7yqhq","WQdcKmoXySk7W4NdI8k0WOJdRCkaWOOdW7KYhCo9WOJcQgldO2JdISorW6j/WOKfjti0","W6rKW7qorW","WRWpWRpcMsOudq","WRpdUqyMW5W","b0ZdSCkmW7K","WQjCWPWSW68","nmoZWOnazSolcComyCk1gfXm","WQXdW4/dMSoUWPVdHSoepG","nL3dLcdcLN3dOa","W7hcO8kECsFdQ8oRBSkBn0VcSvi","WP7dNCoNW5WwrJxcICojWPKMjmoD","W6mcW4rzWQRcUgdcI8kVgt48na","WOtdM8o+W5W3","g1Ctc3f+WO3dPZ5uWQC","WRDCWP8dW7JdPbVcGSkQhdO","W6zDB8k0W50lW5X5W7m0W5i","WQ8dW5y7zhpcS3FdLq","lMiQla","W6zBBmkJW5S","WPtdPmkxW4VcIghdVCkxWQhdK8oGW4pdIJmAW6a","W7lcNSkVEG","W65xW48is8kRh0NcO8kWpq","ASk+bXZcMG","WOD7W4/dM8o1","W7iyWQWL","WQeihCkVxCkLW6hdHsr/W4W","W7nMW4NdNmoKWQVdOW","CSoecYr0vIlcGKu","W6X6W7/dMh5cWQhdGSkR","WQCLnCkhsq","t8o2WRm3WOW","n0RcV0mnW4BcNCosCX18","kbSuWPxdRKaNjmouWQdcV07cPcZcQMq","bfVcPCkS","kNlcPKW","vd98W7xdVq","ar0hW4GXFb0hpJbO","hK9uWRRdGSoRh8kB","WQGlWRlcMr4pbSoeWORdMIK","WOJdMmoQamk0","yIlcO8oslq","W7jkASk1","nhtcOKFcMYRdH3JcPwTaW6r3","n21DW4Gwfmo6rIVcM2qrq3BcNGG","zWVcIxZdMaddOCoGACowosm","W4ddLsJcQ2JcOq","oxxdMtdcVq","cLjrWQS","hKvuWQRdLCo2fCkrW4pcTdi","BmkYW6yyp8kcvSofqG","dLStaNDUWQVdRaHvWR8","W4VdKsVcQvpcV8ooWRu","WPBdQCkLzSk/uSo8WPhdMY87","b8kEFens","jfFcOKy3W7FcGmoNCX5+","qd15W7G","j3ZcOKFcHJNdJ2S","WOldRCkKzSklsCo3","WRWCWRFcMa","oSoqWPBdRmkD","dSkSW6HXW5hdV3e2W43cKGy","kCoiWPxdISkd","WRNdIeNdNsFdLSoUW6/dKKz0va","rCkxWR/dMmkm","W67dMWpcM1e","W5xcNSkLxSoioSopW7hdOmoanse4","WQKPn8ka","WOOse8kMmW","WQ5AWRe","e13dT8kA","WQNdQsWMW4S1W5e","W5GVW5NcR8k5vwm","CColcgSjjgJcSKqVW67cGW8","h8kqzfne","W7BcR8kFCrBdUSoJA8kGnLu","uH/dUCk7W4ldQe7cN8om","lmodyIK","omobzYqBsq","WROJWQBdHgnNWR0","CCkOW5SrdmkEuSoktmkwnef8","hLmtg3C","W5hcQXRcOMC","ssbKW7NdUNxcUcJcIa","v2zHWRPh","kmowWPpdGq","WQXdW5JdN8o5WOFdGq","W4SKW7m9","ssbKW7NdUG","lgeseCk5","x8krWQBdMmkTpfdcU8oddSo8W4lcQG","WQ4NWQFdHfD8WRRdU8k0WPPEz8kgfh53","W5GYW63cPSkGy2ZcJ8ka","WQ1uWR1DW70dW7RcO20","CJ7cVCoDgxFcMWFcK8kQEq","WRpcNmkLFH7dH8ok","f8ktDLvv","W7iyWQWLtq92lCklkSk5","khNcHJ45W7yHWQOB","WQCaW40Xzq","WOldRCkKzSktumo8WOC","W4KkW47cNSki","WPBcNLaAW5W","WPhdO8k9ySkWCSo2WRpdOcWG","W65rW4WFtq","WR/dV8ogW68+","kSkpEI9mCYi","W7zsWPPzW4GCW7S","WQO5kmknfsFcJNVcUWSY","E3ZdUXqkswxdQCo5W4tdUq","mg3dPmolhKNcUWJcIa","dCkNW6LXW5hcHXqEW6VcQG7dOCoF","k1RdNsdcVfFdQ8oYv8oGhXvz","WOWaWR5V","qSkwWQ/dMmkhfLS","WRubWQRcMq4","W5/dLsRcQx/cVCooWQpdKdJdGW","w8oNWRuH","WPxdUCobkSoU","WQhdT8kDW57cVa","WOWtWRPUnaFdVCkR","WQa5aCkaaG","omouzYGBwfNdLtH/ea","jx8ToSk4","WQzCWRWcW7m","DIxdUrhdUsldJeJcJMzD","vHZcHmotna","o8kwrHTh","WQqmhCk/wW","j383lCkHq8oqWP/cPG","F8knW58Kkq","W58ZW7y8eSkLWQpdGY1EbqJcP2VdKLi","DtKiWP1euCouqJ3cHe8R","pf3cUeaVW4S","WPtdSCkxW4FcIha","W7WzWOaZAqv2","W5udW6/cJmkp","e8oaW7lcHmojA1RcQCo9omoAW7q","WOuDWQnUcdZdT8k9W5S","WPddHmkntSkR","n2TEW58q","gmoJWQ/dJSk/","vcP8W7NdQKZcSIJcRSoyW4e","lfBdNcdcJuBdR8o8umoyeWLnWPbkWPm","W6hcIJFcHgdcGSoh"];return(_0x4736=function(){return e})()}export const useSelectedCol=()=>useSudokuStore(_temp8);export const useNotesMode=()=>({sioCr:function(e,o){return e(o)}}[_0x62c0(184,"R2D1")](useSudokuStore,_temp9));export const useGridVersion=()=>({FvfpW:function(e,o){return e(o)}}[_0x62c0(150,"YSW[")](useSudokuStore,_temp0));export const useSelectionVersion=()=>({SNWNE:function(e,o){return e(o)}}[_0x62c0(246,"%jcc")](useSudokuStore,_temp1));export const useCellSig=(e,o)=>{const t=_0x62c0,n={};n[t(280,"gOhJ")]=function(e,o){return e!==o},n.yeEht=function(e,o){return e!==o},n[t(157,"ryZW")]=function(e,o){return e!==o};const W=n,r=_0x4d3772(3);let d;return W[t(152,"%jcc")](r[0],o)||W[t(172,"^caD")](r[1],e)?(d=n=>{const r=t;if(!W[r(267,")4F)")](r(262,"EaXT"),r(167,"hs)T"))){const t=n[r(212,"7uFi")][e]?.[o];return t?t[r(159,"[r4t")]+":"+t[r(175,"WgI(")]+":"+t[r(166,"A1r0")]+":"+t[r(191,"W!c)")][r(213,"6$)G")](","):""}_0x3986dd(e=>{const o=r;e[o(183,"jUxa")]=0,e[o(258,"qDKr")]=_0x22f37f,e[o(186,"p)W8")]=!0,e[o(151,"OcfJ")]=!1,e[o(181,"@g(#")]=!1,e.filledCount=0,e[o(169,"OcfJ")]=!1,e[o(231,"hle0")]=-1,e[o(194,"g#rK")]=-1})},r[0]=o,r[1]=e,r[2]=d):d=r[2],useSudokuStore(d)};export const useSelectionSig=()=>({yVWco:function(e,o){return e(o)}}[_0x62c0(180,"sGOz")](useSudokuStore,_temp10));export const useGridReady=()=>useSudokuStore(_temp11);function _temp(e){return e.score}function _temp2(e){return e[_0x62c0(189,"W!c)")]}function _temp3(e){return e[_0x62c0(270,"hs)T")]}function _temp4(e){return e[_0x62c0(230,"&XaG")]}function _0x62c0(e,o){e-=140;const t=_0x4736();let n=t[e];if(void 0===_0x62c0.vUnQzV){const e=function(e,o){let t,n,W=[],r=0,d="";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,d+=String.fromCharCode(e.charCodeAt(o)^W[(W[n]+W[r])%256]);return d};_0x62c0.IRbzrg=e,_0x62c0.YtoDRl={},_0x62c0.vUnQzV=!0}const W=t[0];_0x62c0.GovBpG!==W&&(_0x62c0.YtoDRl={},_0x62c0.GovBpG=W);const r=_0x62c0.YtoDRl[e];return void 0===r?(void 0===_0x62c0.MmZHfu&&(_0x62c0.MmZHfu=!0),n=_0x62c0.IRbzrg(n,o),_0x62c0.YtoDRl[e]=n):n=r,n}function _temp5(e){return e[_0x62c0(236,"hle0")]}function _temp6(e){return e[_0x62c0(248,"jUxa")]}function _temp7(e){return e[_0x62c0(227,"fD&j")]}function _temp8(e){return e[_0x62c0(153,"1^^Y")]}function _temp9(e){return e[_0x62c0(261,"@M#h")]}function _temp0(e){return e.gridVersion}function _temp1(e){return e[_0x62c0(211,"HRwk")]}function _temp10(e){const o=_0x62c0,t=e[o(200,"sGOz")]>=0&&e[o(192,"#qB^")]>=0?e.grid[e[o(253,"%jEe")]]?.[e[o(173,"@M#h")]]?.[o(259,"#qB^")]??0:0;return e[o(272,"ryZW")]+":"+e.selectedCol+":"+t}function _temp11(e){const o=_0x62c0;return e[o(196,")4F)")][o(164,"E^G%")]>0}
@@ -1 +0,0 @@
1
- "use strict";const _0x5a663a=_0x24a8;function _0x23ed(){const t=["jmoSWQNdL0O","WP3dHCkhW5mk","j8o7WQ/dMwJcUCoRWRG","WPD0W7dcKmku","hfbbwCkf","WPqSWRZdVSo+W6iPW4BdO8kRWR8","sdZcGq0KcmkSdt88WO7cGmo9","k1HjE8kWWPGiW5eq","y8oigSk7","attcMmo1W6GMjHaSW78","y8k3efpdONrvWOlcV8kfpfeLW5JcKa","WRGiWRHF","W5ldUJfc","WP0YvX1yiJtdMW","W5dcSmkfWQ08","wchcKHSUeCkx","WONcONfubCozpdRdQmoIW5zf","WQxcUSosWRJcOq","Dh/cO2GuW5NdNa","W7LVWOZdJW","W5vNW5hcMmk4","zSkTmCkTWQfbW6yoW53dUKS","wHy1mGVcJSkxbdFdMq","W7HciCoZW7JdRHBdS0m","x8kypmktWQpcMJJcPSoK","WROcAtbZgb7dUCkBhSkVWPe3WRtdKCkoxCkQkG","tSkYbCkTWP0","zWX9EGG","rCkemGNdLSoEsCoM","uCoIW7NcU8oq","W6hcH0Xjta","wCkwW5tcTCks","owBcT8oe","smokW4NcGCol","r8kxp3xdSu50WQZcKmk5","DSkYW4RcMCki","WR1kWQhdG8ohFConW5rmpG","mmk0WO3dNCkzwcxdIvhcN8ojFW","WRxcOCohWRVcTG","tmoJWO4ZkG","W5vhAWWSW74YW59vvJG","dJ7cLmoO","AmkTpmkYWPjCW60U","lLjly8kLWOmFW4K","W411W7FcP8k/","W57cQCkgWQ8m","EmkGmCk6WRTeW4a1W5tdRu0","WOVdRWFdQmkl","fSoTWRpdLuW","EeHVWQJdHtVdPa","vCkkmg/dLuD8WR/cNCku","qKpcRSoc","uSkDjq","WRHXWR/dKSoh","W77cKSovW7BdH8olBmk6","W5ddLHH4la","w8klW7m","FvjZWQ7dTZddUCkaW7hdNG","vmk2uCoBha","EH9OuqtcHmoh","WR1jWQddMmoZ","ECkTmCk9WQaDW64/W5xdRwbHy8k8WQiEWQ03DdVdHehcSvT/","aSooWORdG14","W7pcLmoGW77dHCohBq","xdLbwsq","dWJdNruPW5ZdJCkDpH4","W797WPpdKSkB","WP/cVuCL","WR0oESkWWQVcRe/dLNDwFHhcOW","F8kNa8kQWQzAW609","W5pcU8k/WQFdVG7dMW","DvjVWRFdGtK","FmocaSk6oW","W6BcM1Tv","j3CIzdKdWQ0FWPhcKa","WOZcOH0wB8kojcm","wCk5AmoRgSoXmH5xW7S","uCo6W6ZcKCol","sbNdJSkKfKFdLSoiku3cKwnbaCkCWQC","WRdcOCofWQdcGHZcO8o5uYW","DtJcJbaC","WO/dUaBdPCkqAW4","fmo/W4eqWR7cVvBcG8oA","zCoJW5dcHmos","tmkWECo4","W4vlyaGxW7yVW6vC","W7BcKCksWOaV","W7VcKCkyWOmTWO/cImojW7xcGf7dHvi3iKhdKa","A8oyWQ4Ohq","xCoNWPeYoLmh","W6xcLCkvWPFdSshdSComqcq","AmkiWQVdS0e","wSkypSkiWOi","cZNdTSoX","hMuNzq0","FSkHW43dJIC8FhbBW6lcUCobW7W","iwCMutqA","W7DdW6xcUCkcC1WDDbi","B8kThf7dPh9tWPtcRmkikeW","FbXzxGZcICoxrJC","DCoPW4G","hsddOmoH","dSk6W5fWFHCbahBdMxPm","W4DpWRldUmk8WPeHDmkKu8kqC8kvW7FcOmklWRe","W5FdSY0bvCkF","c8oDWRJcSKHFcxTpW5JcQ8ouW4W","qCoTW5hcJSoHgGRdHW","dttcI8oQW60f","W5ZcU8kMWQmx","W7NcGSojW6pdLSoq","W7/cNw9uuJlcMa","WO01rbjFjZRdGCk7bq","WRiXB05YWOGRwCkXWQC","qgTQW7jc","WRyiW7VcRb/cKvn2rta","WO4UqqHe","W7tcGuLpqb7cMmoaW7ZcNa","tSoWWOmOpe0divldIq","WOddT8kpW5e5","hcNdSq","dcxdOCoTyW","ihP3zSkj","tCkxW5NcRCkEW4BcICkM","WPCcqq5+","W7ldUrKfWPxcO8kdWReHDq","FCkMWRBdTKm","q8oQWQ4Gkq","nSo9WQxdMvm","W6xcLCkvWPC","WRVcR8ozWRpcRrpcMSo/tW","W4rJW4K","W63cRSkgWPqt","W49UmqmWWP/dNmkEW63cLWxdTJq","Ae1XWRpdLa","WOBcU3e/W7uCWQq","wCoNWOWYkLm","cvvOFSkh","x8k3WQVdMg0","W79vhdmh","nCk/WORdMmkrwIFdJvVcMmo2zq","DCo4W5xcJCogbGRdLxO","qfNcQmoeCW","lqKOW6JcMgFdM8kOW5ldG8kpBa","WRtcHCozWQ3cJq","W6vzfsG","WRhcQ8oFWOFcSbZcUSo1","ovjFE8kWWPGd","WOu/WRNdR8on","fCorWPNdUwtcL8oyWOVdIbC","z8kQWRpdSv5tWQ4yCX9h","FbzQsYO","vvxcG0a","WOPVW73cMCkc","WQtcQCojWRxdRe3dOSkGe2uvW60QrCketG","WPPRWQ3dOmoj","W4r+Ab8m","ESk6W6JcLCkLW6tcOmkjWOtdJLu","vmoTWOWJ","WRpdSCkgW6KwW5ZcUSknW6uMe8kdWQJdVmo7WOC","FGn+F8kXWOKIW6S","W6ZcHSolW6ldLG","cJtcIG","t8k8zCo4ha","W6JcI8kfWP8","Bfr5WQ7dIa","WQCoW7hcRde","x8kyia","WPtdNCkTW4W9W4VcMSk0W4e","Cca8dcBcPSkS","WRWFWPLvWRi","W7PUWOBdI8kB","WRmotJ95","FdxdPSkCiq","W6RcRmolW7JdPq","DJ03cZNcQ8k7icldPrWfW78","W59Yg8ouW4tdJdpdKgvQFa","W5ddPIufvmkFdG","WRxcU8ozWQBcOrpcUG","AeL0WRZdHJVdTCkuW6O","W59hCaKf","WOJdVbddOSoUBbNcPCknW4m","cmoczCoqW4JdMxtcPCoYWOpdUb1r","ErVcUdyhnSkToa","hsddQSo2Eq","W6dcLCkxWOZdHq","b3CIvdKCWRSrWPVcP8kaWPddGbNcKW","yqPXrJ7cHmom","WPbOW4hcH8kvxeO","WRSvWQPtWRxcSCocW55dvSklWQu","ldRdLCoJya","jXlcLSowW70","W5BdRComoNXgibFdVZK","W7pdOWOfWPtcGSkc","W7TcmmoO","D8kIh8k4WRlcUG/cLCofWQhdPZ9sW7VdKrfxW43cQrO","sCkyo8kjWOtcIZpcJ8o3WO3dMGPJ","WPBdM8kKW5eAW7VcGSkSW4u","W617WPldL8kxWQSi","W7ZcL8krWP4RWQtcHCooW5C","W7tcK8kFWPFdNW","tmkqW5ZcPq","W6RcICk8WORdGsxdSG","W6VcM8kvWOFdMYxdKSoqqt9QWPpdSSk0WQRdGZS","vmkcoaNdRq","lLHjE8kcWOuFW5Gh","WOFdNCkUW5eH","DCoKW53cJ8ophZ3dH23cNSotrq","W71OWP7dICknWQmawCkB","WPtdNCk5W5uLW67cGSkoW4euoa","qmkqW4lcRmkBW5G","WRjlWQZdM8o0EmofW44","W71wl8o1W74","WO7cO8oeWOZcVG","rCkemGNdG8owxSoQixK","ECohWQ4keguNbwpdMq","Ea5X","DGDGxGNcGSoBrG","W5rVW5NcMCk1","W4xdQJz5p8o5WOeB","WR1kWQhdG8owECojW5PimW","u8kElXu","WRSptNrEW6/dM8kTW6dcVHZdQq","W4ZcU8kUWQmaWRdcQmo7W7xcQNq","jer3y8kcWPuyW5ms","W7ddVCondM1CdXVdSa","W61ylCo0W4JdQaBdVum","sSkEW53cSCktW5RcIW","WR4CWQDcWR8","tmoKpSkNmq","W5/dVCovk3XjeH0","W4tdOcXEgmoSWOWsW7y","WRGsWRHEWQ7cR8oIW5y","W75MjqThWQyzx8k3","DqhcRtyjk8kTiGWAWQRcTConomoZWRD1","W711WO8","y3FcPmoyBW","pxBcVmoyBfjQ","CCoLW5JcN8oi","W5VdT8onf3O","W4JdRCosea","wu/cGMy/W7xdNCkapJ4","WRJdUbldVCkWxb3cUCksW4rj","W7FcLCkOWPFdHsNdSSoc","W43cVmktWQiZ","AtpdO8kAluVdQSo0a20","BCkYcSkZWQ/cQXpcMmooWRO","bua/ybO","vxn8W7fv","WPpdHSkVW4q9W6O","xxbHW7ngWO8","WPxdSGZdVmkICW","dZZcOmoQW6a","W7TiasSk","qfhcV8olp8kaW7TFdmk9z8odWPCIraFcP8kgueRdUa","jvjoAmklWPG","WPBdM8kKW5epW67cLSkPW4Wa","WPOVtbbiot7dMW","WOmvWRNdTCo+","EfjXWRxdKG","hCoRW4ewWQpcUM3cGG","WPaXWRNdTCoA","EWb7xWZcNa","WPCYsc5jjH3dMSkWkq","WRxcPSocWRJcOa/cQ8o+","W7frpaqE","EYNdSCka","kCoXWQJdILpcPa","kdJdPmoTySkYWPddIhVcKdaNW4WEuSoLga","x1lcU8oozG","q0JcJKO4W73dTmkDpq","sYtcHreG","eqBdRCkA","W61Mkq","Btynpr0","W5BdT8ovhu5hcaW","ifzvAmkkWOiLW5if","DSo5W4/cGW","dmoTmSk6rCkojs57W4aNtq","W7ZcI8oiW7JdGq","rfFcSCoFCG","WPpdM8kMW4O7","W6nskSoNW7pdQa","W6VcN8ksWOtdNZq","B8oMW67cPmoX","W5hdSSoZn1K","WPS7WRZdVCoaW7m","WQOsWRmAWRtcQCoJW50","xtqDdI4","W5xdPIzEiW","WRnaWQBdKmoPAa","WPz1W4hcM8kd","WPiLvJ5p","WO5YW6dcGCkp","WPq7WQhdICoCW6yVW5a","W45JW5ZcNSkOrNaFvcra","AsykfG","WQfeWPRdTSoQ","wLpcTmonF8og","B8kEn8kq","qmkqW4tcPmk8W5VcGSk8","imofWOxdQL4","WOqtW6tcJrW","WOZcP1GIW7u","n8o1WQ3dMf4","WPOOsrnE","W7TzfcimWQK","FZWxcGFcOmkKnW","W6ZdItDaia","fZ7cGCoZW58Diq","WOFcRv0QW68h","hCo3W4ahWRVcSNVcOSolwN4","zmkGWQddR0Pn","W77dUqOAWPdcGa","BCkNpSkQWODhW7O2W50","wCo3WPa0kK8w","AdpdRmkCkgVdQSo/fa","WOldKCkNW6eOW7VcMG","W5zqW4RcPSk7","DxH5WQJdSG","EmkQWR/dHKPvWQO","fspdSCo8xmk4WRBdK3i","CSoPW4tcNW","W7ZcImojW6pdPmohASkZW6qD","ufNcSCoo","oqpdHmolt8koWPVdQvtcPWy","BSk+p8k6WR8","W6zsiSoZW67dRHRdHunxta","wL/cJLC+W6NdVSk7ntlcTa","WPZdKCkSW5e","kMOMwJGCWO4E","W5JdPc0c","WRJcOCozWRNcPre"];return(_0x23ed=function(){return t})()}!function(){const t="md$#",e=_0x24a8,o=_0x23ed();for(;;)try{if(283745==-parseInt(e(509,"k!qS"))/1*(parseInt(e(519,t))/2)+-parseInt(e(481,"!0!^"))/3+-parseInt(e(251,"!0!^"))/4+-parseInt(e(293,"V&jP"))/5+parseInt(e(460,t))/6+parseInt(e(546,"R)38"))/7+parseInt(e(549,"WIXg"))/8)break;o.push(o.shift())}catch(t){o.push(o.shift())}}();import{c as _0x2d689d}from"react/compiler-runtime";import _0x5af753,{useMemo,useRef,useEffect,useCallback}from"react";import{View,StyleSheet,Platform}from"react-native";import{Canvas,RoundedRect,Rect,Group,Text as _0x5a72c5,matchFont}from"@shopify/react-native-skia";function _0x24a8(t,e){t-=229;const o=_0x23ed();let W=o[t];if(void 0===_0x24a8.qebTnP){const t=function(t,e){let o,W,n=[],_=0,a="";for(t=function(t){let e="",o="";for(let o,W,n=0,_=0;W=t.charAt(_++);~W&&(o=n%4?64*o+W:W,n++%4)?e+=String.fromCharCode(255&o>>(-2*n&6)):0)W="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(W);for(let t=0,W=e.length;t<W;t++)o+="%"+("00"+e.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(o)}(t),W=0;W<256;W++)n[W]=W;for(W=0;W<256;W++)_=(_+n[W]+e.charCodeAt(W%e.length))%256,o=n[W],n[W]=n[_],n[_]=o;W=0,_=0;for(let e=0;e<t.length;e++)W=(W+1)%256,_=(_+n[W])%256,o=n[W],n[W]=n[_],n[_]=o,a+=String.fromCharCode(t.charCodeAt(e)^n[(n[W]+n[_])%256]);return a};_0x24a8.jDlvbc=t,_0x24a8.rcZMEB={},_0x24a8.qebTnP=!0}const n=o[0];_0x24a8.Pcqtvg!==n&&(_0x24a8.rcZMEB={},_0x24a8.Pcqtvg=n);const _=_0x24a8.rcZMEB[t];return void 0===_?(void 0===_0x24a8.SUXIPg&&(_0x24a8.SUXIPg=!0),W=_0x24a8.jDlvbc(W,e),_0x24a8.rcZMEB[t]=W):W=_,W}import _0x1b3cd9,{useSharedValue,useAnimatedStyle,withSpring,withSequence,withTiming,Easing,runOnJS}from"react-native-reanimated";import{Gesture,GestureDetector}from"react-native-gesture-handler";import{getGameDimensions}from"../../../services/UtilsService.js";import{useSudokuStore,useGridReady,useGridVersion,useSelectionVersion}from"../SudokuStore.js";import{SUDOKU_GAME_CONFIG,SUDOKU_COLORS,BOARD_3D}from"../SudokuConstants.js";import{jsx as _0x24ee29,jsxs as _0x2a27d7}from"react/jsx-runtime";const{CELL_SIZE:CELL_SIZE,CELL_SPACING:CELL_SPACING,BOX_BORDER:BOX_BORDER}=SUDOKU_GAME_CONFIG,{width:gameWidth}=getGameDimensions(),BOARD_DEPTH=BOARD_3D[_0x5a663a(552,"q591")],BOARD_PAD=BOARD_3D[_0x5a663a(514,"IzG8")],BOARD_R=BOARD_3D.RADIUS,CELL_DEPTH=2,CELL_TOTAL_H=CELL_SIZE+2,NUM_BTN_DEPTH=4,NUM_BTN_H=52,NUM_BTN_TOTAL_H=56,CELL_POSITIONS=[];(()=>{const t=_0x5a663a,e={};e[t(301,"PCPV")]=function(t,e){return t<e},e[t(380,"Sy7Y")]=function(t,e){return t===e};const o=e;let W=BOX_BORDER;for(let e=0;o[t(521,"!0!^")](e,9);e++){CELL_POSITIONS[e]=[];let t=BOX_BORDER;for(let n=0;o.WvPzk(n,9);n++){const _={};_.x=t,_.y=W,CELL_POSITIONS[e][n]=_,t+=CELL_SIZE,n<8&&(t+=o.mdfdq((n+1)%3,0)?BOX_BORDER:CELL_SPACING)}W+=CELL_TOTAL_H,e<8&&(W+=(e+1)%3==0?BOX_BORDER:CELL_SPACING)}})();const LAST_CELL=CELL_POSITIONS[8][8],GRID_CONTENT_W=LAST_CELL.x+CELL_SIZE,GRID_CONTENT_H=LAST_CELL.y+CELL_TOTAL_H,GRID_BOX_W=GRID_CONTENT_W+BOX_BORDER,GRID_BOX_H=GRID_CONTENT_H+BOX_BORDER,BOARD_W=GRID_BOX_W+2*BOARD_PAD,BOARD_CONTENT_H=GRID_BOX_H+2*BOARD_PAD,BOARD_H=BOARD_CONTENT_H+BOARD_DEPTH,NUM_PAD_MARGIN=2,NUM_BTN_W=Math.floor((gameWidth-24-36)/9),NUM_PAD_Y_OFFSET=0,NUM_BTN_POSITIONS=[];for(let t=0;t<9;t++){const e={};e.x=12+t*(NUM_BTN_W+4)+2,e.y=0,NUM_BTN_POSITIONS.push(e)}const NUM_PAD_CANVAS_W=gameWidth,NUM_PAD_CANVAS_H=60,CELL_FONT_SIZE=Math[_0x5a663a(253,"Sy7Y")](.55*CELL_SIZE),NOTE_FONT_SIZE_PX=Math[_0x5a663a(516,"hy#O")](.25*CELL_SIZE),NOTE_CELL_THIRD=Math[_0x5a663a(390,")Gn$")](CELL_SIZE/3),NUM_BTN_FONT_SIZE=22,NUM_REMAINING_FONT_SIZE=8,_0x1c61e8={};_0x1c61e8.ios=_0x5a663a(336,"EFRs"),_0x1c61e8.default=_0x5a663a(292,"(t0R");const FONT_FAMILY=Platform[_0x5a663a(417,"pPZ8")](_0x1c61e8);let _fontCache=null;const getFontCache=()=>{const t=_0x5a663a,e={nEdrR:function(t,e){return t(e)}};if(_fontCache)return _fontCache;const o={};o[t(480,"h])$")]=FONT_FAMILY,o.fontSize=CELL_FONT_SIZE,o[t(478,"WHCz")]="bold",o[t(337,"kRqG")]=t(373,"@%a&");const W=matchFont(o),n={};n.fontFamily=FONT_FAMILY,n.fontSize=NOTE_FONT_SIZE_PX,n[t(501,"5D&I")]=t(361,"CtKy"),n[t(342,"ng[y")]=t(423,"i[lt");const _=e[t(430,"5D&I")](matchFont,n),a={};a[t(325,"7eWS")]=FONT_FAMILY,a[t(446,"YVS)")]=22,a.fontWeight=t(435,"Sy7Y"),a[t(468,"V&jP")]="normal";const d=matchFont(a),r={};r[t(523,"6xC$")]=FONT_FAMILY,r[t(472,"7eWS")]=8,r[t(434,")Gn$")]=t(362,"(t0R"),r[t(308,"i5Mn")]=t(321,"9J0Q");const x=e[t(235,"q$pU")](matchFont,r),O=new Map;for(let e=1;e<=9;e++){const o=e[t(354,"IzG8")]();O[t(496,"WHCz")](e,{textStr:o,textWidth:W[t(438,"kRqG")](o).width,noteWidth:_.measureText(o)[t(404,"l#Om")],btnWidth:d[t(465,"r8ZH")](o)[t(277,"U1ec")]})}const S=new Map;for(let e=0;e<=9;e++){const o=e.toString();S.set(e,{textStr:o,width:x[t(406,"fwni")](o)[t(317,"i5Mn")]})}const i={};return i[t(486,"r8ZH")]=W,i[t(386,"EFRs")]=_,i[t(303,"EFRs")]=d,i[t(518,"3bbc")]=x,i[t(310,"q591")]=O,i[t(431,"i[lt")]=S,_fontCache=i,_fontCache};let _k=0;const buildBoardElements=()=>{const t="9J0Q",e=_0x5a663a,o={pKloV:function(t,e,o,W){return t(e,o,W)},LBpVF:function(t,e,o,W){return t(e,o,W)},XMzXr:function(t,e){return t-e}},W=[],n={x:0};n.y=BOARD_DEPTH,n[e(237,"i[lt")]=BOARD_W,n[e(378,"YVS)")]=BOARD_CONTENT_H,n.r=BOARD_R,n.color=SUDOKU_COLORS.BOARD_FRONT,W[e(511,"PZ4v")](_0x24ee29(RoundedRect,n,_k++));const _={x:0,y:0};_[e(475,t)]=BOARD_W,_.height=BOARD_CONTENT_H,_.r=BOARD_R,_[e(416,"q$pU")]=SUDOKU_COLORS.BOARD_TOP,W.push(o[e(369,"j#RN")](_0x24ee29,RoundedRect,_,_k++));const a={x:6,y:3};a[e(315,"7eWS")]=BOARD_W-12,a.height=3,a[e(350,"EFRs")]=SUDOKU_COLORS[e(454,"WHCz")],a[e(288,"md$#")]=.5,W.push(o[e(358,"3bbc")](_0x24ee29,Rect,a,_k++)),W.push(_0x24ee29(RoundedRect,{x:o[e(479,t)](BOARD_PAD,2),y:BOARD_PAD-2,width:GRID_BOX_W+4,height:GRID_BOX_H+4,r:BOARD_R-4,color:SUDOKU_COLORS[e(436,"PCPV")]},_k++));const d={};d.x=BOARD_PAD,d.y=BOARD_PAD,d.width=GRID_BOX_W,d[e(366,"xv%*")]=GRID_BOX_H,d.r=6,d.color=SUDOKU_COLORS[e(244,"pPZ8")],W[e(377,"U*OR")](_0x24ee29(RoundedRect,d,_k++));const r={};return r.x=BOARD_PAD,r.y=BOARD_PAD,r.width=GRID_BOX_W,r[e(401,"h])$")]=GRID_BOX_H,r[e(482,"6xC$")]=SUDOKU_COLORS[e(294,"dfMe")],W[e(388,"!0!^")](o[e(285,")Gn$")](_0x24ee29,Rect,r,_k++)),W},BOARD_ELEMENTS=buildBoardElements(),CELL_GROUP_KEYS=[];for(let t=0;t<81;t++)CELL_GROUP_KEYS[_0x5a663a(463,"B(@Z")](_k++);const NUM_BTN_KEYS=[];for(let t=0;t<9;t++)NUM_BTN_KEYS.push(_k++);const CELL_OFFSET_X=BOARD_PAD,CELL_OFFSET_Y=BOARD_PAD,StaticBoardCanvas=_0x5af753.memo(()=>{const t=_0x5a663a,e=_0x2d689d(1);let o;if(e[0]===Symbol[t(278,"V&jP")](t(505,"r8ZH"))){const W={};W[t(461,"6xC$")]=boardCanvasStyle,W.children=BOARD_ELEMENTS,o=_0x24ee29(Canvas,W),e[0]=o}else o=e[0];return o});StaticBoardCanvas.displayName=_0x5a663a(379,"PCPV");const CellsCanvas=_0x5af753[_0x5a663a(256,"pPZ8")](()=>{const t="(Vi4",e="fwni",o="%WXF",W="h])$",n="IzG8",_="i5Mn",a="k!qS",d="PCPV",r=_0x5a663a,x={pCEtp:function(t,e){return t(e)},mMPij:r(443,"6xC$"),tetCI:function(t,e){return t<=e},nsJJb:function(t,e){return t===e},WnEPp:function(t,e){return t+e},IyFuk:function(t,e){return t/e},exhzq:function(t,e,o,W){return t(e,o,W)},zaUAk:function(t,e){return t>e},NllyW:function(t,e){return t!==e},nihuE:"mvZav",Mpzxi:function(t,e,o,W){return t(e,o,W)},iycyG:function(t,e){return t+e},rYZRg:function(t,e,o){return t(e,o)}},O=useGridVersion(),S=useSelectionVersion(),i=useMemo(()=>{const O=r,S={lcPWh:function(t,e){return t*e}};if(!x[O(488,"fwni")](O(492,"YVS)"),O(399,t))){const r=useSudokuStore[O(405,"j#RN")](),{grid:S,selectedRow:i,selectedCol:C}=r;if(0===S.length)return null;const{cellFont:s,noteFont:u,digitData:R}=getFontCache(),k=i>=0&&C>=0?S[i]?.[C]?.value??0:0,f=[];for(let r=0;r<9;r++)for(let m=0;m<9;m++){const L=S[r]?.[m];if(!L)continue;const l=CELL_POSITIONS[r][m],N=CELL_OFFSET_X+l.x,P=x[O(473,"!0!^")](CELL_OFFSET_Y,l.y),E=9*r+m,D=r===i&&m===C,h=k>0&&L[O(259,"j#RN")]===k&&!D,T=!D&&(x.nsJJb(r,i)||m===C||Math[O(504,W)](r/3)===Math[O(295,"PCPV")](x.IyFuk(i,3))&&Math.floor(x.IyFuk(m,3))===Math.floor(C/3));let G=SUDOKU_COLORS[O(462,"k!qS")],I=SUDOKU_COLORS[O(326,"R)38")];D?(G=SUDOKU_COLORS[O(539,"WIXg")],I=SUDOKU_COLORS[O(469,"q$pU")]):L[O(246,"PZ4v")]?(G=SUDOKU_COLORS.CELL_ERROR,I=SUDOKU_COLORS[O(522,"U*OR")]):h?G=SUDOKU_COLORS[O(270,"i5Mn")]:T?G=SUDOKU_COLORS.CELL_SAME_ROW_COL:L[O(313,"IzG8")]&&(G=SUDOKU_COLORS[O(466,"(Vi4")],I=SUDOKU_COLORS.CELL_GIVEN_DEPTH);const U=[],B={x:0,y:2};B[O(274,o)]=CELL_SIZE,B[O(409,"Sy7Y")]=CELL_SIZE,B.r=2,B[O(372,"j#RN")]=I,U[O(517,"[)UI")](_0x24ee29(RoundedRect,B,0));const y={x:0,y:0};y.width=CELL_SIZE,y[O(548,"md$#")]=CELL_SIZE,y.r=2,y.color=G,U[O(407,"(Vi4")](_0x24ee29(RoundedRect,y,1));const M={x:1,y:0};if(M[O(311,"IzG8")]=CELL_SIZE-2,M[O(393,"kRqG")]=2,M[O(414,"PZ4v")]=L.isGiven?O(265,"6xC$"):O(365,"Sy7Y"),U[O(305,"kRqG")](x[O(444,"YVS)")](_0x24ee29,Rect,M,2)),x[O(408,W)](L[O(483,"R)38")],0)){const o=R[O(242,e)](L[O(391,"Sy7Y")]);if(o){if(!x[O(524,"dfMe")](x[O(291,"$Zu1")],"LKWoN")){if(_0x120a26)return _0x21aa99;const e={};e[O(558,"U1ec")]=_0x455656,e.fontSize=_0x476c6f,e[O(501,"5D&I")]=O(312,"9J0Q"),e.fontStyle="normal";const o=_0x308348(e),W=tcHkuh[O(230,"i5Mn")](_0x53af38,{fontFamily:_0x264e1e,fontSize:_0x18d6b1,fontWeight:tcHkuh[O(233,"xv%*")],fontStyle:O(424,"Z$Lh")}),n={};n[O(534,"IzG8")]=_0x56a50b,n.fontSize=_0x143d0f,n.fontWeight=O(263,"k!qS"),n[O(451,"xv%*")]=O(551,"#1XL");const d=tcHkuh.pCEtp(_0x42d44d,n),r={};r[O(367,_)]=_0x4085fe,r[O(418,t)]=_0x29c97d,r[O(331,"h])$")]="normal",r[O(425,"r8ZH")]=O(515,"5D&I");const x=_0x28f28f(r),S=new _0x59a6ef;for(let t=1;t<=9;t++){const e=t[O(513,"r8ZH")]();S.set(t,{textStr:e,textWidth:o[O(261,"i[lt")](e).width,noteWidth:W[O(439,a)](e)[O(277,"U1ec")],btnWidth:d.measureText(e)[O(232,"PCPV")]})}const i=new _0x37520e;for(let t=0;tcHkuh[O(385,"(Vi4")](t,9);t++){const e=t.toString();i[O(544,"!0!^")](t,{textStr:e,width:x.measureText(e)[O(284,"U*OR")]})}const C={};return C[O(487,"xv%*")]=o,C[O(411,"9J0Q")]=W,C[O(352,"k!qS")]=d,C[O(374,"q$pU")]=x,C[O(279,"i5Mn")]=S,C[O(428,_)]=i,_0x38e345=C,_0x4c25f7}{let t=SUDOKU_COLORS[O(334,"q591")];L[O(554,"[)UI")]&&(t=SUDOKU_COLORS[O(260,"YVS)")]),L.isError&&(t=SUDOKU_COLORS[O(357,"V&jP")]);const e={};e.x=(CELL_SIZE-o[O(344,"yxG&")])/2,e.y=.68*CELL_SIZE,e[O(528,"%WXF")]=o[O(298,"@%a&")],e[O(240,n)]=s,e[O(527,"!0!^")]=t,U[O(455,"J5L5")](x.Mpzxi(_0x24ee29,_0x5a72c5,e,3))}}}else if(L.notes.length>0)for(let t=1;t<=9;t++)if(L[O(447,"l#Om")][O(322,"h])$")](t)){const e=R[O(231,d)](t);if(e){const o=(t-1)%3,W=Math[O(359,"CtKy")]((t-1)/3),_=x[O(262,"@%a&")](o*NOTE_CELL_THIRD,(NOTE_CELL_THIRD-e[O(432,"PCPV")])/2),a=W*NOTE_CELL_THIRD+.85*NOTE_FONT_SIZE_PX,d={};d.x=_,d.y=a,d[O(433,"!0!^")]=e[O(525,"(t0R")],d.font=u,d[O(296,n)]=SUDOKU_COLORS[O(287,"kRqG")],U[O(275,"q591")](_0x24ee29(_0x5a72c5,d,10+t))}}const p={};p[O(229,"R)38")]=N;const b={};b.translateY=P;const A={};A[O(381,a)]=[p,b],A[O(375,"6xC$")]=U,f[O(537,d)](_0x24ee29(Group,A,CELL_GROUP_KEYS[E]))}return f}{let t=_0x7a78cb[O(268,"9J0Q")];_0x5b22c7[O(507,")Gn$")]&&(t=_0x1e4a29[O(541,e)]),_0x1f2cc0[O(299,"l#Om")]&&(t=_0x3005d3.TEXT_ERROR),_0x2c4505[O(332,"7eWS")](_0x3db63b(_0x4b2a43,{x:(_0x49aa0a-_0x2d568d[O(529,"$Zu1")])/2,y:S[O(502,o)](_0x48a798,.68),text:_0x568641[O(258,"xv%*")],font:_0x1b615f,color:t},3))}},[O,S]),C={};return C[r(282,"B(@Z")]=boardCanvasStyle,C[r(307,"V&jP")]=r(269,"R)38"),C.children=i,x[r(499,"ng[y")](_0x24ee29,Canvas,C)});CellsCanvas[_0x5a663a(320,"i5Mn")]=_0x5a663a(353,"(t0R");const NumberPadCanvas=_0x5af753[_0x5a663a(452,"hy#O")](({onNumberPress:t})=>{const e="5D&I",o="Sy7Y",W=_0x5a663a,n={mqMvC:function(t,e){return t+e},DmWna:function(t){return t()},YlzDH:function(t,e){return t>e},cTpeF:function(t,e){return t<e},kbsBc:function(t,e){return t>e},nodwp:function(t,e){return t-e},PBDPg:function(t,e){return t<=e},QZLnR:function(t,e,o,W){return t(e,o,W)},EzUsI:function(t,e){return t/e},ppexk:function(t,e){return t/e},evodk:function(t,e){return t*e},ymDCq:function(t,e){return t+e},tbRbh:function(t,e){return t(e)},DbOqd:function(t,e){return t(e)},bGyqj:function(t,e,o){return t(e,o)},CZKne:function(t,e,o){return t(e,o)}},_=useGridVersion(),a=useMemo(()=>{const t=_0x24a8,W={DHAuU:function(t,e){return t>=e},XmoXz:function(t,e){return n[_0x24a8(445,"i5Mn")](t,e)}},{numBtnFont:_,numRemFont:a,digitData:d,remData:r}=n.DmWna(getFontCache),x=useSudokuStore[t(341,"EFRs")]()[t(442,"md$#")],O=[0,9,9,9,9,9,9,9,9,9];if(n.YlzDH(x.length,0))for(let e=0;n[t(497,"h])$")](e,9);e++)for(let o=0;o<9;o++){const W=x[e]?.[o],_=W?.[t(464,"fwni")];_&&n[t(403,"q$pU")](_,0)&&!W[t(280,"(Vi4")]&&(O[_]=Math[t(327,"@%a&")](0,n[t(530,"q591")](O[_],1)))}const S=[];for(let x=0;x<9;x++){const i=x+1,C=NUM_BTN_POSITIONS[x],s=O[i],u=n.PBDPg(s,0),R=[],k={x:0,y:4};k[t(311,"IzG8")]=NUM_BTN_W,k.height=52,k.r=10,k[t(536,"V&jP")]=u?SUDOKU_COLORS.NUM_BTN_DISABLED_FRONT:SUDOKU_COLORS.NUM_BTN_FRONT,R[t(456,"ng[y")](n[t(532,"R)38")](_0x24ee29,RoundedRect,k,0));const f={x:0,y:0};if(f[t(276,e)]=NUM_BTN_W,f[t(421,"PZ4v")]=52,f.r=10,f[t(392,"i5Mn")]=u?SUDOKU_COLORS[t(306,"V&jP")]:SUDOKU_COLORS.NUM_BTN_TOP,R.push(_0x24ee29(RoundedRect,f,1)),!u){const o={x:4,y:2};o[t(474,"[)UI")]=NUM_BTN_W-8,o[t(421,"PZ4v")]=2,o[t(370,e)]=SUDOKU_COLORS.NUM_BTN_HIGHLIGHT,o[t(503,"@%a&")]=.5,R[t(495,"Sy7Y")](n.QZLnR(_0x24ee29,Rect,o,2))}const m=d.get(i);if(m)if("rctHe"!==t(471,"@%a&")){const e=_0x27c60c[_0x39a7a4];if(W.DHAuU(_0x7e0313,e.x)&&_0x5cc112<=e.x+_0x1a0181&&_0x5ac7b2>=e.y&&_0x2984a3<=W[t(324,"6xC$")](e.y,_0x5ae291)){const e=_0x222baa+1;return void _0x3f6aee[t(459,"dfMe")](e)}}else R[t(476,"bT%B")](_0x24ee29(_0x5a72c5,{x:n[t(470,"r8ZH")](NUM_BTN_W-m.btnWidth,2),y:52*.58,text:m[t(348,"bT%B")],font:_,color:u?SUDOKU_COLORS.NUM_BTN_DISABLED_TEXT:SUDOKU_COLORS[t(542,"WHCz")]},3));if(s>0){const e=r[t(384,"yxG&")](s);e&&R[t(495,o)](_0x24ee29(_0x5a72c5,{x:n[t(382,"dfMe")](NUM_BTN_W-e[t(284,"U*OR")],2),y:n[t(437,"r8ZH")](52,.82),text:e[t(420,"#1XL")],font:a,color:SUDOKU_COLORS[t(547,"B(@Z")]},4))}const L={};L[t(555,"q$pU")]=C.x;const l={};l[t(494,"WHCz")]=C.y;const N={};N[t(319,"B(@Z")]=[L,l],N[t(234,"9J0Q")]=R,S[t(495,o)](_0x24ee29(Group,N,NUM_BTN_KEYS[x]))}return S},[_]),d=n[W(248,"xv%*")](useRef,t);d[W(426,"R)38")]=t;const r=useCallback((t,e)=>{const o=W;if(useSudokuStore[o(330,"ng[y")]()[o(335,"xv%*")])for(let W=0;n.cTpeF(W,9);W++){const _=NUM_BTN_POSITIONS[W];if(t>=_.x&&t<=n[o(376,"pPZ8")](_.x,NUM_BTN_W)&&e>=_.y&&e<=_.y+56){const t=W+1;return void d[o(289,"6xC$")](t)}}},[]),x=useMemo(()=>Gesture.Tap()[W(402,"l#Om")](t=>{n[W(281,"J5L5")](runOnJS,r)(t.x,t.y)}),[r]),O={};return O[W(557,"CtKy")]=numPadCanvasStyle,O.pointerEvents=W(398,"J5L5"),O[W(328,"@%a&")]=a,n[W(535,"i[lt")](_0x24ee29,GestureDetector,{gesture:x,children:_0x24ee29(View,{style:styles.controlsContainer,children:n[W(506,"YVS)")](_0x24ee29,Canvas,O)})})});NumberPadCanvas[_0x5a663a(422,"(TM]")]=_0x5a663a(297,"3bbc");const GameAreaComponent=t=>{const e="q591",o=_0x5a663a,W={tsQuA:function(t,e,o){return t(e,o)},QAyrx:function(t,e,o){return t(e,o)},lgYml:function(t,e){return t<e},uVwKf:function(t,e){return t<=e},WghSQ:function(t,e){return t+e},NFujk:function(t,e){return t+e},ijROQ:function(t,e){return t*e},OIGCW:function(t,e){return t+e},yhLff:function(t,e){return t<e},pryyH:function(t,e){return t===e},JIkCU:function(t,e){return t===e},DIoQq:function(t,e){return t%e},BIIsn:function(t,e){return t===e},bKryI:function(t){return t()},uPpcL:function(t,e){return t!==e},esiOl:function(t,e){return t!==e},aQDGe:function(t,e,o){return t(e,o)},ANbWH:function(t,e){return t!==e},EDQkc:function(t,e){return t===e},ZiyJT:o(413,"U1ec"),IVHkI:"1|0|2|4|3"},n=_0x2d689d(27),{gameService:_,offset:a}=t,d=W[o(340,"hy#O")](a,void 0)?0:a,r=W[o(255,"6xC$")](useGridReady),x=useSharedValue(1),O=useRef(0);let S,i;n[0]!==x?(S=()=>{const t=o,e=useSudokuStore[t(467,"kRqG")](_temp,e=>{const o=t;if(o(458,"q591")!==o(249,"i[lt")){const t=O[o(493,"5D&I")];if(O[o(304,"Z$Lh")]=e,0===t)return;const n=useSudokuStore.getState(),{selectedRow:_,selectedCol:a,grid:d}=n;if(_<0||a<0)return;const r=d[_]?.[a];if(!r)return;if(r.isError&&r[o(339,"J5L5")]>0){const t={duration:40},e={};e[o(371,"(TM]")]=40;const n={};n[o(457,"q$pU")]=40;const _={};_[o(498,")Gn$")]=40;const a={};a[o(309,"B(@Z")]=14,a[o(252,"!0!^")]=300,x[o(510,"B(@Z")]=withSequence(withTiming(1.02,t),W.tsQuA(withTiming,.98,e),withTiming(1.01,n),withTiming(.99,_),withSpring(1,a))}else if(r[o(415,"YVS)")]>0&&!r[o(507,")Gn$")]){const t={};t[o(338,"9J0Q")]=12,t[o(290,"5D&I")]=280,x[o(272,")Gn$")]=withSequence(W[o(347,"Sy7Y")](withTiming,1.015,{duration:60,easing:Easing.out(Easing.cubic)}),withSpring(1,t))}}else{const t=_0x3494a5.get(_0x2f2eb4);if(t){const e={};e.x=(_0x59eea4-t[o(329,"fwni")])/2,e.y=.82*_0x32b06e,e.text=t.textStr,e.font=_0x2a6bfc,e.color=_0x52e0bf[o(345,"dfMe")],_0x3ce28c[o(351,"EFRs")](_0x11f9cd(_0x8a4707,e,4))}}});return()=>e()},i=[x],n[0]=x,n[1]=S,n[2]=i):(S=n[1],i=n[2]),useEffect(S,i);const C={};C.scale=x[o(323,"kRqG")];const s=useAnimatedStyle(()=>({transform:[C]}));let u;W[o(267,"$Zu1")](n[3],_)?(u=(t,e)=>{const n=o;if(!useSudokuStore.getState()[n(543,"@%a&")])return;const a=t-CELL_OFFSET_X,d=e-CELL_OFFSET_Y;for(let t=0;W[n(363,"#1XL")](t,9);t++)for(let e=0;e<9;e++){const o=CELL_POSITIONS[t][e];if(a>=o.x&&a<=o.x+CELL_SIZE&&d>=o.y&&W[n(429,"fwni")](d,W[n(538,"3bbc")](o.y,CELL_TOTAL_H)))return void _.handleCellSelect(t,e)}},n[3]=_,n[4]=u):u=n[4];const R=u;let k;n[5]!==_?(k=t=>{const e=o;"ytDrO"!==e(355,"q591")&&useSudokuStore[e(257,"6xC$")]().isPlaying&&_[e(314,"IzG8")](t)},n[5]=_,n[6]=k):k=n[6];const f=k;let m;W[o(243,e)](n[7],R)?(m=Gesture.Tap().onEnd(t=>{runOnJS(R)(t.x,t.y)}),n[7]=R,n[8]=m):m=n[8];const L=m;if(!r){let t;if(W.esiOl(n[9],d)){const e={};e[o(387,"xv%*")]=d;const W={};W[o(364,"pPZ8")]=[styles[o(316,"xv%*")],e],t=_0x24ee29(View,W),n[9]=d,n[10]=t}else t=n[10];return t}let l,N,P,E,D,h,T;if(n[11]!==d){const t={};t[o(526,"(TM]")]=d,l=[styles.container,t],n[11]=d,n[12]=l}else l=n[12];if(n[13]!==s?(N=[styles[o(453,"#1XL")],s],n[13]=s,n[14]=N):N=n[14],n[15]===Symbol[o(500,"WIXg")]("react.memo_cache_sentinel")?(P=_0x2a27d7(View,{style:styles[o(356,"U*OR")],children:[W[o(412,"YVS)")](_0x24ee29,StaticBoardCanvas,{}),_0x24ee29(CellsCanvas,{})]}),n[15]=P):"OVovI"===o(489,e)?_0x152071.push({x:CtNWvo[o(419,"ng[y")](12,CtNWvo[o(396,"EFRs")](_0x10bd60,CtNWvo.OIGCW(_0x1a32f4,CtNWvo[o(395,"!0!^")](_0xa647f5,2))))+_0x5d1330,y:_0x4e6a22}):P=n[15],n[16]!==L){const t={};t[o(533,"R)38")]=L,t[o(441,"3bbc")]=P,E=_0x24ee29(GestureDetector,t),n[16]=L,n[17]=E}else E=n[17];if(n[18]!==E||W[o(266,"h])$")](n[19],N)){const t={};t.style=N,t.children=E,D=_0x24ee29(_0x1b3cd9[o(410,"V&jP")],t),n[18]=E,n[19]=N,n[20]=D}else D=n[20];if(n[21]!==f){const t={};t[o(286,"(Vi4")]=f,h=_0x24ee29(NumberPadCanvas,t),n[21]=f,n[22]=h}else h=n[22];if(n[23]!==D||n[24]!==h||n[25]!==l)if(W.EDQkc(o(448,"xv%*"),W.ZiyJT)){let t=_0x397786;for(let e=0;CtNWvo[o(238,"R)38")](e,9);e++){_0x4e61cd[e]=[];let W=_0x3354c5;for(let n=0;n<9;n++){const _={};_.x=W,_.y=t,_0x1811a9[e][n]=_,W+=_0x2325be,n<8&&(W+=CtNWvo[o(491,"(t0R")](CtNWvo[o(477,"!0!^")](n,1)%3,0)?_0x228254:_0xb0ac29)}t+=_0x27c2e6,e<8&&(t+=CtNWvo[o(283,"q$pU")](CtNWvo[o(302,"#1XL")](e+1,3),0)?_0x32bbbd:_0x418844)}}else{const t=W[o(508,"@%a&")][o(245,"5D&I")]("|");let e=0;for(;;){switch(t[e++]){case"0":n[23]=D;continue;case"1":const t={};t[o(264,"l#Om")]=l,t[o(368,"q$pU")]=[D,h],T=_0x2a27d7(View,t);continue;case"2":n[24]=h;continue;case"3":n[26]=T;continue;case"4":n[25]=l;continue}break}}else T=n[26];return T},_0x2e88a7={};_0x2e88a7[_0x5a663a(343,"J5L5")]="absolute",_0x2e88a7[_0x5a663a(250,"pPZ8")]=BOARD_W,_0x2e88a7[_0x5a663a(409,"Sy7Y")]=BOARD_H,_0x2e88a7[_0x5a663a(346,"B(@Z")]=0,_0x2e88a7[_0x5a663a(440,"i5Mn")]=0;const boardCanvasStyle=_0x2e88a7,_0x38f37e={};_0x38f37e[_0x5a663a(239,"YVS)")]=NUM_PAD_CANVAS_W,_0x38f37e[_0x5a663a(397,"j#RN")]=60;const numPadCanvasStyle=_0x38f37e,_0x3650c2={};_0x3650c2[_0x5a663a(545,"PCPV")]=1,_0x3650c2[_0x5a663a(520,"%WXF")]=_0x5a663a(553,")Gn$"),_0x3650c2.justifyContent=_0x5a663a(247,"R)38");const _0x29f08d={};_0x29f08d[_0x5a663a(559,"q$pU")]=0,_0x29f08d[_0x5a663a(394,"IzG8")]=6;const _0x6952b3={};_0x6952b3[_0x5a663a(490,"r8ZH")]=_0x5a663a(383,"Sy7Y"),_0x6952b3[_0x5a663a(300,"J5L5")]=_0x29f08d,_0x6952b3[_0x5a663a(450,"dfMe")]=.35,_0x6952b3[_0x5a663a(318,"!0!^")]=12;const _0x53e60c={elevation:12},_0x44f6be={width:BOARD_W,height:BOARD_H,...Platform.OS===_0x5a663a(273,"#1XL")?_0x6952b3:_0x53e60c},_0x7bfceb={};_0x7bfceb[_0x5a663a(349,"!0!^")]=BOARD_W,_0x7bfceb[_0x5a663a(540,"3bbc")]=BOARD_H;const _0x1b125d={};_0x1b125d[_0x5a663a(400,"ng[y")]=gameWidth,_0x1b125d[_0x5a663a(241,"6xC$")]=20;const _0x409d1c={};_0x409d1c[_0x5a663a(427,"U*OR")]=_0x3650c2,_0x409d1c[_0x5a663a(236,"Z$Lh")]=_0x44f6be,_0x409d1c[_0x5a663a(560,"[)UI")]=_0x7bfceb,_0x409d1c[_0x5a663a(531,"q591")]=_0x1b125d;const styles=StyleSheet[_0x5a663a(360,"i5Mn")](_0x409d1c);export const GameArea=_0x5af753[_0x5a663a(485,"#1XL")](GameAreaComponent);function _temp(t){return t[_0x5a663a(449,"j#RN")]}GameArea[_0x5a663a(484,"$Zu1")]=_0x5a663a(550,"!0!^");
@@ -1 +0,0 @@
1
- "use strict";const _0xe4c79e=_0xb8f2;!function(){const e=_0xb8f2,r=_0x4233();for(;;)try{if(890878==-parseInt(e(414,"iCaW"))/1+parseInt(e(426,"lyDX"))/2*(-parseInt(e(418,"7P6I"))/3)+parseInt(e(428,"N*8G"))/4+parseInt(e(413,"Z!dO"))/5+-parseInt(e(411,"lDQM"))/6+parseInt(e(401,"G4]!"))/7*(parseInt(e(407,"myXi"))/8)+parseInt(e(404,"q7Ym"))/9)break;r.push(r.shift())}catch(e){r.push(r.shift())}}();import{c as _0x396777}from"react/compiler-runtime";import _0x21c338 from"react";import{View}from"react-native";import{ScoreBoardContainer,ScoreValue,ScoreTimer,scoreBoardStyles as _0x2941a0}from"../../../helpers/index.js";function _0xb8f2(e,r){e-=399;const o=_0x4233();let t=o[e];if(void 0===_0xb8f2.QHLwrd){const e=function(e,r){let o,t,n=[],d=0,i="";for(e=function(e){let r="",o="";for(let o,t,n=0,d=0;t=e.charAt(d++);~t&&(o=n%4?64*o+t:t,n++%4)?r+=String.fromCharCode(255&o>>(-2*n&6)):0)t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(t);for(let e=0,t=r.length;e<t;e++)o+="%"+("00"+r.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(o)}(e),t=0;t<256;t++)n[t]=t;for(t=0;t<256;t++)d=(d+n[t]+r.charCodeAt(t%r.length))%256,o=n[t],n[t]=n[d],n[d]=o;t=0,d=0;for(let r=0;r<e.length;r++)t=(t+1)%256,d=(d+n[t])%256,o=n[t],n[t]=n[d],n[d]=o,i+=String.fromCharCode(e.charCodeAt(r)^n[(n[t]+n[d])%256]);return i};_0xb8f2.tCQtWX=e,_0xb8f2.QcimDc={},_0xb8f2.QHLwrd=!0}const n=o[0];_0xb8f2.jdYJwk!==n&&(_0xb8f2.QcimDc={},_0xb8f2.jdYJwk=n);const d=_0xb8f2.QcimDc[e];return void 0===d?(void 0===_0xb8f2.KwhnhS&&(_0xb8f2.KwhnhS=!0),t=_0xb8f2.tCQtWX(t,r),_0xb8f2.QcimDc[e]=t):t=d,t}import{useScore,useTimeRemaining}from"../SudokuStore.js";import{jsx as _0x5ed677,jsxs as _0x414436}from"react/jsx-runtime";export const ScoreBoard=_0x21c338[_0xe4c79e(402,"lDQM")](e=>{const r=_0xe4c79e,o={lbhhl:function(e,r){return e!==r},awnZN:function(e,r,o){return e(r,o)}},t=_0x396777(10),{offset:n}=e,d=void 0===n?0:n,i=useScore(),W=useTimeRemaining();let s,a,f,x;if(o[r(422,"!WN7")](t[0],i)){const e={};e[r(421,"uhzj")]=i,s=_0x5ed677(ScoreValue,e),t[0]=i,t[1]=s}else s=t[1];if(t[2]!==W){const e={};e[r(409,"tKmA")]=W,e[r(427,"ApR!")]=60,a=o[r(417,"Mn&1")](_0x5ed677,ScoreTimer,e),t[2]=W,t[3]=a}else r(406,"q7Ym")===r(424,"u(&v")?a=t[3]:_0x447778=_0x49bad9[3];if(t[4]!==s||t[5]!==a){const e={};e[r(408,"gG%3")]=_0x2941a0[r(412,"O@0w")],e.children=[s,a],f=_0x414436(View,e),t[4]=s,t[5]=a,t[6]=f}else f=t[6];if(t[7]!==d||t[8]!==f){const e={};e[r(419,"!WN7")]=d,e[r(410,"KXrs")]=f,x=o[r(423,"etxl")](_0x5ed677,ScoreBoardContainer,e),t[7]=d,t[8]=f,t[9]=x}else x=t[9];return x});function _0x4233(){const e=["mYe9le/cLr43","WPNcUt1auNddPMZdRY9kn2W","WORcH8kh","zMhcVY0LW53cMGxdHNFdQXFdRa","W5r+W6ddStZcGK0VWPTmqfJdOa","W6uRWO7dVSoHhSkAsSovW43cLIdcMCk2","WPhcUhu1bXRcGeu","y8k0W6vAaa","W4PMW43cL8kBerjrW5XSWQKn","WQpcRCkGfKSL","wSo7od55sCoIW5VcHrVdPW","WRxdMSkZW4zv","WQdcQCkUdui","WRRdLWlcGaC","WQpdTCkXW59F","WQpdTLhcR8kUW5H5W41iW63dT1qn","WP7dJ8k8ixpcOCo+hG","z8kJW7rHA20bW6HEkYZdQW","WQiKW6baCSkzW7bCWRldPSkgWO4","WQKUW69eEmkEWQ9aWOhdLmkBWOxcGG","cmkHCNCKh8kTW43cTZddMmkkoW","cSolWQhdPSkAiCkPm8o3aNzVyq","W43dPwKz","W6b2WQFdNc90W5a","gJiuBSoacSkdWRBcS8oUp1JdOMG","e2z+W49RWPyRBKNdKa","sf9up8kG","oXj1W7FcJ8krsG","W6hcTH7dTSo+","WOXrACkiWRFdOfS"];return(_0x4233=function(){return e})()}ScoreBoard[_0xe4c79e(420,"4PiN")]=_0xe4c79e(405,"JMGQ");
@@ -1 +0,0 @@
1
- "use strict";var _0x49f5fe=_0x5909;function _0x478f(){var r=["ESoqW4tcIMHRcIOb","W7VdICoWg8oUoaZdMq","WPzbWPm8W6S","oLKcW5WZvtK/da","qNldOgJcNCkeW4TQqSkDAc9N","hSoyW5hdPfRdO8kWWPDp","W4BdHCkSWRHgsYOViG","WOhcG8oWWRH4CayIaq","xmo+vSo7WOP1vCoWW6e","W4ZcSmowlSohW70kWOtcGW","BW5DWOXubtGjhrLxFW","W5BcUwxdGmoTWQRdLJ5tWPtcL0m","W5NdUgDEEmojW6a5WQpdOqBcOa","E8oPW51GvCkbWPmsWQ/cSSoHhq","hSkZcSk8W6WLt8oJW73cIcaq","CCk8dJ3dGmk6W5ZcPG","WPhcM8o6WQLcBbS","W5XltSoTW60duwv4WOHcW44","p8kUWQTGyCkQEI0T","W4xcU8o0WPjEEIe","W58CW63dRSkmW6LbAmoWm8kDjG","W58wW67dR8kmW6TjvmoYgmkVna","lKWoW4StAd03gYa","gSomjr3cRZtcUKJcOYRdMa8","j8kxgSkKWQedrmoZW41fBeO","rG3cSWldMSowWRq","WRRcJCo4gSoqfsxdVSkD"];return(_0x478f=function(){return r})()}function _0x5909(r,e){r-=179;var t=_0x478f(),W=t[r];void 0===_0x5909.gaPUQV&&(_0x5909.NzeVjI=function(r,e){var t,W,a=[],o=0,n="";for(r=function(r){for(var e,t,W="",a="",o=0,n=0;t=r.charAt(n++);~t&&(e=o%4?64*e+t:t,o++%4)?W+=String.fromCharCode(255&e>>(-2*o&6)):0)t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(t);for(var f=0,s=W.length;f<s;f++)a+="%"+("00"+W.charCodeAt(f).toString(16)).slice(-2);return decodeURIComponent(a)}(r),W=0;W<256;W++)a[W]=W;for(W=0;W<256;W++)o=(o+a[W]+e.charCodeAt(W%e.length))%256,t=a[W],a[W]=a[o],a[o]=t;W=0,o=0;for(var f=0;f<r.length;f++)o=(o+a[W=(W+1)%256])%256,t=a[W],a[W]=a[o],a[o]=t,n+=String.fromCharCode(r.charCodeAt(f)^a[(a[W]+a[o])%256]);return n},_0x5909.hqsLaB={},_0x5909.gaPUQV=!0);var a=t[0];_0x5909.dtHfYi!==a&&(_0x5909.hqsLaB={},_0x5909.dtHfYi=a);var o=_0x5909.hqsLaB[r];return void 0===o?(void 0===_0x5909.yYQqUj&&(_0x5909.yYQqUj=!0),W=_0x5909.NzeVjI(W,e),_0x5909.hqsLaB[r]=W):W=o,W}!function(){for(var r="Epdc",e=_0x5909,t=_0x478f();;)try{if(537339==parseInt(e(183,"&J^Y"))/1+parseInt(e(189,r))/2+parseInt(e(179,"sKXo"))/3*(parseInt(e(197,"Xei8"))/4)+parseInt(e(200,"n)]O"))/5+-parseInt(e(180,"e!Kx"))/6+-parseInt(e(194,"n)]O"))/7*(-parseInt(e(190,r))/8)+-parseInt(e(201,"(8@A"))/9*(parseInt(e(192,"$Mg*"))/10))break;t.push(t.shift())}catch(r){t.push(t.shift())}}();import{setGameInterval,clearGameInterval}from"../../helpers/GameTimer.js";export class TangramService{gameTimer=null;[_0x49f5fe(191,"sKXo")](r){var e=_0x49f5fe;this[e(203,"E5Jp")](),this[e(187,"czEp")]={XtMRP:function(r,e,t){return r(e,t)}}[e(198,"(vPA")](setGameInterval,r,1e3)}[_0x49f5fe(204,"&J^Y")](){var r=_0x49f5fe;this[r(196,"x0f1")]&&(clearGameInterval(this[r(199,"sKXo")]),this[r(205,"Vp]m")]=null)}[_0x49f5fe(185,"E5Jp")](){this[_0x49f5fe(195,"Xei8")]()}}
@@ -1 +0,0 @@
1
- "use strict";const _0x2d1e31=_0xabe5;!function(){const e=_0xabe5,t=_0x1306();for(;;)try{if(790935==parseInt(e(244,"DL)B"))/1*(-parseInt(e(189,"hOZD"))/2)+-parseInt(e(243,"lPp&"))/3+parseInt(e(206,"&E12"))/4*(-parseInt(e(191,"[bC*"))/5)+parseInt(e(187,"EJ$g"))/6*(-parseInt(e(197,"Lr0o"))/7)+parseInt(e(179,"ipiW"))/8*(-parseInt(e(184,"e#Lj"))/9)+parseInt(e(229,"e#Lj"))/10+parseInt(e(190,"[bC*"))/11)break;t.push(t.shift())}catch(e){t.push(t.shift())}}();import{create}from"zustand";import{subscribeWithSelector}from"zustand/middleware";import{TANGRAM_GAME_CONFIG}from"./TangramConstants.js";function _0x1306(){const e=["WR8wm8kswq","W77dSmoGW64JW7/cUIO","WQvgW6W7sNtdJCkt","WRDItSkzvrCRW47dQG","ANZdLrNdMq","ySkmW5zJEG","Bd9dxeG8WRpdS0/cVSkp","WR3dQ8k5WP/cGa","bITPvHuHWOpdG2hcOG","rCk3y2e/WOBdHZS","oCoeW6ddNmoRW6ddKSkem8kzW6KE","W5hdJCk9WQzuWQ3cRCo6AW","W60NjSogbv1XW5BdMmotWPyOwG","z8oiwt/cS8kzW6lcHSoVgmkAW4KQ","n2ucW7DhtrtdPga","W4NdI33dSI0bWPee","omopl1HOW4WZF8oYca","WRyEamkGrq","cSksuLfLW4/cNf51WQGI","lSkLD8kNdwnTdZW","WQRcO8oEWQqhWRVdOSkBF01sW4ldOG","W48GWQWUW5e","iSosW4tdLSoX","W5DYW6ytW5xdUmo3iexdUmohW5ZcUq","v8kxW4jZBmkGWQpdTW","W73dHCkLWQ3cLXtdLa","WRe0WOhdUSo8bwX2AmkCEmkQiSoJ","WRa8WOldUCo4scqlCCkyya","W5JcSxO7F8oqBmkHW6tdPhZdJa","CZNdI8oDha","WR/dNCk1WOZcKb3dVe3dRCkpua","WPiVWR5fWQRcPCkHbW","v8kuqSkca8kEW5BcRgK","WPVdOh0ZuSosySkl","WRVcR8k7WR1AWQpdRZ3dKLldVCkXWP8","WPNcMhBcRmo7B8obnmk1W6CaEa","iCo4kmk4ldtdJmktWQBcJL/cPehdMa","WPtcHg7cS2G","qmkqWQzbWOyBwCou","WOHiWOFdKeG","uSoHW77dQSoJWP1TWOldGsyjWOel","W4nnW7/cImksDqeDFSkIy8kjoq","BsDGW55WtINdHxy","kN8/W75QurVdVG","WOVcISoUW6ddLCozkSkLW6lcSCon","W7SUWPBdNmohW5pcULpcNfZcQa","lhmHW75syHJdUhrne8ka","W5ldNCoKW6WG","WRi2CfhdHa","WOLlWQFdLeCcg8kzobW","n2uvW7PlutldVgjw","qCoqW7dcSmop","EmoJWQqAWPJdIhrMW60","ymkoxa4YWP9lsSoNh3tdGCke","bCoZphHjW7ySqmosov3dLW","WQehWP5LWRNcHmksiuZdVmogW4RcOq","tCkeFCkCbW","BsbQWQGxb07dVfjtmmkhiW","W68Lk8ogb1zYW7pdHCo0WPiyDq","B2RdTbpdMW","WO3cQCoCW6NdNW","WRVcSKZcH8oBASo7fSkdW5WWrSkrW5Kyxa","W4NdGXRcOLiHWPyiW6xcNmoG","bCkFWRlcR8oAW4/cQbLtW5S","WPtcGhRdUGyHWO8IW4W","WQRcRCoyWQmbWRRdOCkiDwXLW4BdMa","r8oqWPVcNmop"];return(_0x1306=function(){return e})()}import{calculateTimeBasedScore}from"../../services/ScoringService.js";const _0x55fd57={};_0x55fd57[_0x2d1e31(196,"Gvfr")]=!1,_0x55fd57[_0x2d1e31(235,"2ttV")]=!1,_0x55fd57[_0x2d1e31(214,"&E12")]=!1,_0x55fd57[_0x2d1e31(223,"2ttV")]=0,_0x55fd57[_0x2d1e31(208,"c3BM")]=TANGRAM_GAME_CONFIG[_0x2d1e31(218,"WRCg")],_0x55fd57[_0x2d1e31(182,"JJYb")]=0,_0x55fd57[_0x2d1e31(241,"gpgE")]=0,_0x55fd57.score=0,_0x55fd57.moves=0,_0x55fd57[_0x2d1e31(232,"GA6&")]=TANGRAM_GAME_CONFIG.GAME_DURATION;const INITIAL_STATE=_0x55fd57;export const useTangramStore=create()(subscribeWithSelector((e,t)=>({...INITIAL_STATE,setupLevel:t=>{const o=_0x2d1e31;({dgEWo:function(e,t){return e(t)}})[o(181,"3pM7")](e,e=>({level:t,totalPieces:TANGRAM_GAME_CONFIG.TOTAL_PIECES,placedCount:0,moves:0,score:0,timeLeft:TANGRAM_GAME_CONFIG[o(219,"EJ$g")],isWon:!1,isGameOver:!1,resetVersion:e[o(210,"&E12")]+1}))},startGame:()=>{const t=_0x2d1e31,o={};o[t(245,"&E12")]=!0,o.isWon=!1,o[t(213,"69dz")]=!1,e(o)},resetGame:()=>{const t=_0x2d1e31;e(e=>({...INITIAL_STATE,resetVersion:e[t(199,"a^vZ")]+1}))},placePiece:()=>{const o=_0x2d1e31,r={rZmpu:function(e,t){return e(t)},nHNGS:function(e,t){return e+t},hpgeb:function(e,t){return e-t},AryuZ:function(e,t,o,r){return e(t,o,r)}},W=t();if(!W[o(228,"ipiW")])return;const n=W[o(194,"hOZD")]+1;let d=r[o(215,"$jvq")](W[o(220,"Gvfr")],TANGRAM_GAME_CONFIG[o(225,"a^vZ")]);const s=n>=W[o(209,"RU%)")];if(s){if("ChHPz"!==o(212,"rY5L"))return r[o(238,"hOZD")](_0x3d1170,_0x4fc32f);{const e=r[o(203,"69dz")](TANGRAM_GAME_CONFIG.GAME_DURATION,W[o(188,"()Pf")]);d=r[o(236,"()Pf")](calculateTimeBasedScore,e,TANGRAM_GAME_CONFIG[o(205,"[bC*")],d)}}const a={};a.placedCount=n,a[o(231,"3pM7")]=W.moves+1,a[o(220,"Gvfr")]=d,a[o(186,"gpgE")]=s,a[o(216,"aXj1")]=!s&&W[o(183,"IZId")],e(a)},decrementTime:()=>{const o=_0x2d1e31,r={rLFhf:function(e,t){return e<=t}},W=t();if(!W.isPlaying||W.isWon||W[o(227,"0Bhy")])return;const n=W[o(233,"Xcqq")]-1;if(r[o(224,"c3BM")](n,0)){const t={};t[o(240,"AaIL")]=0,t[o(180,"WRCg")]=!0,t.isPlaying=!1,e(t)}else{if(o(193,"x[6B")!==o(230,"sgtl"))return _0x1435aa[o(201,"fKaH")];{const t={};t[o(207,"&E12")]=n,e(t)}}}})));export const useIsPlaying=()=>({XDigO:function(e,t){return e(t)}}[_0x2d1e31(211,"GA6&")](useTangramStore,_temp));export const useIsWon=()=>useTangramStore(_temp2);export const useIsGameOver=()=>useTangramStore(_temp3);export const useScore=()=>useTangramStore(_temp4);export const useTimeLeft=()=>useTangramStore(_temp5);function _0xabe5(e,t){e-=179;const o=_0x1306();let r=o[e];if(void 0===_0xabe5.sNTZzY){const e=function(e,t){let o,r,W=[],n=0,d="";for(e=function(e){let t="",o="";for(let o,r,W=0,n=0;r=e.charAt(n++);~r&&(o=W%4?64*o+r:r,W++%4)?t+=String.fromCharCode(255&o>>(-2*W&6)):0)r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(r);for(let e=0,r=t.length;e<r;e++)o+="%"+("00"+t.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(o)}(e),r=0;r<256;r++)W[r]=r;for(r=0;r<256;r++)n=(n+W[r]+t.charCodeAt(r%t.length))%256,o=W[r],W[r]=W[n],W[n]=o;r=0,n=0;for(let t=0;t<e.length;t++)r=(r+1)%256,n=(n+W[r])%256,o=W[r],W[r]=W[n],W[n]=o,d+=String.fromCharCode(e.charCodeAt(t)^W[(W[r]+W[n])%256]);return d};_0xabe5.htlOEO=e,_0xabe5.Uzyjei={},_0xabe5.sNTZzY=!0}const W=o[0];_0xabe5.sWyaFa!==W&&(_0xabe5.Uzyjei={},_0xabe5.sWyaFa=W);const n=_0xabe5.Uzyjei[e];return void 0===n?(void 0===_0xabe5.TpdYHY&&(_0xabe5.TpdYHY=!0),r=_0xabe5.htlOEO(r,t),_0xabe5.Uzyjei[e]=r):r=n,r}export const useLevel=()=>useTangramStore(_temp6);export const usePlacedCount=()=>useTangramStore(_temp7);export const useResetVersion=()=>useTangramStore(_temp8);function _temp(e){return e[_0x2d1e31(234,"lPp&")]}function _temp2(e){return e[_0x2d1e31(185,"SAq^")]}function _temp3(e){return e[_0x2d1e31(239,"$]Zq")]}function _temp4(e){return e.score}function _temp5(e){return e[_0x2d1e31(195,"EJ$g")]}function _temp6(e){return e.level}function _temp7(e){return e[_0x2d1e31(237,"df9f")]}function _temp8(e){return e[_0x2d1e31(192,"Lr0o")]}
@@ -1 +0,0 @@
1
- "use strict";const _0x33ba01=_0x5412;!function(){const e=_0x5412,t=_0x2447();for(;;)try{if(641704==-parseInt(e(298,"EGu0"))/1*(parseInt(e(325,"4J%U"))/2)+parseInt(e(270,"3lE@"))/3*(-parseInt(e(353,"!((8"))/4)+parseInt(e(377,"ix*b"))/5+-parseInt(e(418,"fY^G"))/6+parseInt(e(422,"x^Cl"))/7*(parseInt(e(365,"fOC@"))/8)+parseInt(e(394,"5Y8l"))/9*(-parseInt(e(399,"(T50"))/10)+parseInt(e(370,")Q3I"))/11)break;t.push(t.shift())}catch(e){t.push(t.shift())}}();import{c as _0x42e5ae}from"react/compiler-runtime";function _0x2447(){const e=["bCoagSoAbmkm","W5eFWQm","W6hdLLldNCom","l8k8imoFqgZdLcnAz8kW","amoPW7hcICoFWRKJr8kb","WQlcRhfkW7rSx18","W5hdLmonra","W5v8sSkWW4S","i8knW5rI","gmkKW7NcT8oTne8o","a8oie8omba","zSohW5DlW6pcLSoAAbu","WPNdOMmzWOCJgIa","WO4do8kjWPi","W6j0pYaCWQ0Hb8kkWR/cRfO","aCogdW","W6FdTtizWQqUkXhdThLXsSkKWQ0","WQKSfLlcTa","u8kMW4y2W63cUSoiAmk/","eYVdQmorfa","W7TNlG","W5n8uSkT","aSoag8oncq","uxJcSCkuq8oHr8o+WPNdTCkhuSoz","WQjtiSkliLtdIWu9cXbKWRXlWOq","vLZdICktovfOWPycW5W","W6H3aMBcOHhcH8ox","hSkHW6auiW","nmk8nmoUua","W7ujuCoaorxdL8kNWQC","W4bYsSkQW5W","WQqJWPVcPSohWPiu","pmk3dmkHWRS","v2j7WQlcNW","bCkoW68qW6O","WOSAsgVcMeK","u8omW4ddNLOfW6FcMSo5","m8kKmSkhWQe","cSkKEXddU8o3W4GNWOddM8k7Aq8","W699rGFdPdVcRmoKmL/cVG","w8kTW4RcV8oZWQ0Sqa","WQTkkmkqiW","W7vZldWkWQ80","gmo/WP3dKIbIvmksmM3cVq","WQlcTmkuW4X6","W5ldSLnMo8k7W587W6FdPKFdQte","W6rrDCktW6W","W7TlgJy4","l8oBdCootW","CbnwhhhdHte","oSovdCouwa","WQG4WQVcSCofWPuo","WOLBWQbQDw/dMa","WPvVhmkIgwJdOt8","cmo+WP3dJY5PDW","W43cNCkEkde","j8kUW40IW53dRmkw","rCk9dIJcNa","WQ5FFG","WRtcQCkcW6PxWQfH","o8ovamojtG","q8kWW5uWW7ZcSCoo","pCkgWP1WW6JcGCoQ","WRpcQCkcW7LgWQz6W4C","CNRcGv8zy1/dVI5eEf7dLG","yg7dLSo9WPe","WR/cH8kC","eSkdW5TOoG","q8krsSkpvmkMWO54emkTWRy","WRSqpmk/WPm8pW","WQ08a1q","a8koW7Cn","W5lcJ8kImtvwE2JcNq","CXnFl3u","h8o7W43cKmoB","WPCVe8o1WPZdSNldJXtcLIn8W6W","amo0W4JcKCoxWQeME8kjWRS","emkVW5JcLmo9ne8o","WOjUf8kVca","WO/cOI4+Fa","WQy0WPRcU8ooWOKujW","b8kxl8kDWOC","fSk8ka","W4OTAmonmq","W4GFWQhdGMn+Ar8","sColW6ldNvaz","xmkYjZpcNq","mYpdOCot","WPtdRNhcJ8oTW6ZcIGZcRCog","vSkKW4S3W7W","W5XMva","WPSgs3lcMe8TWRi","W5JdSxNdTmoU","WQSZWO/cOa","z09dWRhcVW","WOOQgSkmWQix","WR7cKuFdRCoAnCk3jG","WQ47W5NcLeRdRa","WQiYbSoW","WRxcUhfFW7r2Aa","WO7dIYxdRSknEdpdGW","kdxdHqjF","uNn7WR7cJG","WP3dIINdOCkm","mCkPkSo0xNS","W7vNmdGoWRitgSkzWRu","rMzJWOtcJGKvha","fJ7dVCoifa","ASoVWR5cxa","nCkMW4dcG8of","W4/dKSobx3iEWQnoua","WRNcQCkuW79x","WPuNW7JcV2a","hSkoW7m","CXnFl3xdGG","BCo+W4ldVhiYW4K","WOHoW6dcKZyYzd3cNSofWPZdVW","WQC+B3PAW7D3rmkzWOpcP0FcNSkA","WO7cVW8YAW","rvldJSklleDjWROoW5XdWRWN","WRu5WP3cTCowWPK","esVdTSodfmkTmCot","WRq6hSo0","W7ysWRldNwO","WORdJCokAMuxrepcKXdcJfm","WRvbWQDPbCkyWQa","W7DCAmkcW7ZcIWO","hmkBjCkoWPS5","WOrYcSkxjq","W5b/nJ4c","W41ItmkOW78","h8odcColrW","WP7dOMmkWPyKaq","fYxdSa","WRnsB8kfWPZdT0yFW7Cs","WQdcRg9yW7q","aCkdW4rUpg7cV8oB","WQuRW4lcGuFdTLC","WRlcPhbDW715zwJdR0DX","mSkCWOXJW6hcV8oXztxcKCk+","jSoae8ordSkkWRLOfmkc","WPVdGIddT8km","aCkRW4dcSSoS","W7/dILpdMCom","iCkVpCo6qxS","mZJdJafo","zCk6fXNcNq","umo0WRqOkaG+WQzu","hSo7WOD8Fq","WRi6bSoPEa","WOVdTN0nWPy","WO5oWRddK01msZi","Bmoqk2hcVa","W4/cK8kc","tSogW6ddLW","WQhcVCkCW61x","ybvwi2i","WQbFymkqWPJdLhWtW64s","hSo4WRrCqG","lCk/W6OacmkeW4n2mSkAWRtdRG","vmkKW5uLW7ZcQ8o5uW","ymkvlHxcTHfZcMuSWQ8TWONcMvDHW6S","s8oRiK/cRmk7WOO1","W41ulLy","W6tdUMH3W5X1EK8","ymkjir7cVbDL","W5/dKmooxwCiWOjKuSkt","WQXqs8kiWP0","W4VcNCkgnq","W55fkGyH","tSoZi1FcRa","b8knW5TYlq","WQO7W57cLfBdSa","W4RdKmomxMm","WRFcOwPkW79lEuRdQa","gmoIWOpdRsPZAW","WRy3W5xcKeFdQW","WOtcPCk4W5rW","W585DSokmColvG","WOH8n8kozmkDBaarDcrU"];return(_0x2447=function(){return e})()}import _0x4d4341,{useMemo,useRef,useEffect}from"react";import{StyleSheet}from"react-native";import{Canvas,Path,Group}from"@shopify/react-native-skia";import _0x5193a5,{useSharedValue,useAnimatedStyle,withTiming,runOnJS}from"react-native-reanimated";import{Gesture,GestureDetector}from"react-native-gesture-handler";import{useLevel,useResetVersion,useTangramStore}from"../TangramStore.js";import{generateLevel,isRotationMatched,snappedRotation,localPath,BOARD_W,BOARD_H,SNAP_DIST,TRAY_SCALE,TANGRAM_COLORS as _0x315613}from"../TangramConstants.js";import{playSound,GAME_SOUNDS}from"../../../services/SoundsService.js";import{playHaptic,HapticType}from"../../../services/HapticsService.js";import{jsxs as _0x46afa1,jsx as _0x47c55d}from"react/jsx-runtime";const _0x6c08b5={position:"absolute"};_0x6c08b5[_0x33ba01(327,"EGu0")]=0,_0x6c08b5.left=0,_0x6c08b5[_0x33ba01(376,"x^Cl")]=BOARD_W,_0x6c08b5.height=BOARD_H;const SILHOUETTE_CANVAS_STYLE=_0x6c08b5,Silhouette=_0x4d4341.memo(e=>{const t=_0x33ba01,o={};o[t(286,"!jDZ")]=function(e,t){return e!==t};const n=o,W=_0x42e5ae(7),{pieces:a}=e;let r,s,d;if(W[0]!==a?(r=a[t(287,"]Hfu")](_temp),W[0]=a,W[1]=r):r=W[1],n[t(351,"phm9")](W[2],a)?(s=a[t(355,"4J%U")](_temp2),W[2]=a,W[3]=s):s=W[3],W[4]!==r||W[5]!==s){const e={};e[t(281,"ix*b")]=SILHOUETTE_CANVAS_STYLE,e[t(293,"tMTf")]=t(337,"C46J"),e[t(274,"tu!X")]=[r,s],d=_0x46afa1(Canvas,e),W[4]=r,W[5]=s,W[6]=d}else d=W[6];return d});Silhouette.displayName=_0x33ba01(314,"x^Cl");const _canvasStyleCache=new Map,getCanvasStyle=e=>{const t=_0x33ba01;let o=_canvasStyleCache[t(264,"HMKk")](e);if(!o){const n={};n[t(435,"#24z")]=e,n[t(271,"!jDZ")]=e,o=n,_canvasStyleCache[t(420,"fqsc")](e,o)}return o},PieceViewInner=({piece:e,activeSV:t,playingSV:o,claimTarget:n,onPlaced:W,soundEnabledRef:a,hapticEnabledRef:r})=>{const s="dYnZ",d="#20c",i=_0x33ba01,u={ZPFSN:"5|0|3|4|2|1",Fyhpm:function(e,t,o){return e(t,o)},ohEkr:function(e,t){return e===t},mMDxW:function(e,t){return e-t},BllDL:function(e,t){return e(t)},Jlaxl:function(e,t){return e(t)},uhdTH:function(e,t){return e(t)},bcNdQ:i(278,"dd)p")},l=e[i(340,"wi$V")]/2,S=useSharedValue(e[i(284,"wi$V")]),m=useSharedValue(e[i(372,"ZY$$")]),f=useSharedValue(e.initialRot),x=useSharedValue(0),k=u[i(283,"CGnh")](useSharedValue,0),h=useSharedValue(0),_=useRef(e[i(430,"5Y8l")]),C=useMemo(()=>localPath(e.localPoints,l,l),[e[i(313,"fOC@")],l]),p=useMemo(()=>getCanvasStyle(e[i(262,"Rbck")]),[e[i(331,"@Yc2")]]),R=u[i(297,"4J%U")](useRef,n);R[i(423,"&eS4")]=n;const b=u[i(398,"phm9")](useRef,W);b[i(396,"l!^U")]=W;const O=u[i(302,"s!$#")](useRef,()=>{const o=i,n=u[o(395,"s!$#")][o(276,"j@CJ")]("|");let W=0;for(;;){switch(n[W++]){case"0":t[o(381,d)]=e.id;continue;case"1":playHaptic(HapticType[o(386,"#24z")],r[o(311,"!jDZ")]);continue;case"2":playSound(GAME_SOUNDS[o(410,"]Hfu")][o(269,"&eS4")],a[o(273,")Q3I")]);continue;case"3":_[o(352,"!((8")]+=45;continue;case"4":const n={};n[o(417,"phm9")]=140,f[o(381,d)]=withTiming(_.current,n);continue;case"5":if(h[o(387,"j@CJ")])return;continue}break}})[i(299,"bLuv")],P=useRef((t,o)=>{const n=i;if(h[n(411,"Q&ff")])return;const W=R[n(413,"phm9")](e[n(328,s)],t,o,_.current);if(W&&W!==n(356,"3lE@")){h[n(419,"@MX(")]=1;const e={duration:160};S[n(309,")Q3I")]=withTiming(W.cx,e);const t={duration:160};m[n(387,"j@CJ")]=u[n(305,"pHg)")](withTiming,W.cy,t),_.current=W[n(307,"ix*b")];const o={};o[n(366,"]r6s")]=160,f[n(329,"phm9")]=withTiming(W.rot,o),playSound(GAME_SOUNDS.TANGRAM.PLACE,a[n(415,"ZY$$")]),playHaptic(HapticType[n(339,"Q&ff")],r[n(408,"2SSg")]),b.current()}else W===n(292,"(T50")&&(u[n(303,"l!^U")](playSound,GAME_SOUNDS[n(300,"30YL")][n(266,"3lE@")],a[n(416,"fOC@")]),playHaptic(HapticType[n(289,s)],r[n(408,"2SSg")]))})[i(406,"oL]S")],Q=useMemo(()=>{const n=i,W=e.id,a=Gesture.Pan()[n(405,"E$X&")](()=>{const e=n;if(e(268,"j@CJ")!==e(332,"H*(G")){if(!o[e(382,"dd)p")]||h.value)return;x[e(263,"ZY$$")]=S[e(347,"wi$V")],k.value=m[e(282,"eM!Z")],t[e(373,"ix*b")]=W}else _0x17a042=_0x3f8a1d[e(374,"l!^U")](_0x41ae0f),_0x3471ed[0]=_0x5893e9,_0x2c2f59[1]=_0x4be79c})[n(363,"CGnh")](e=>{const t=n;o[t(409,"EGu0")]&&!h[t(263,"ZY$$")]&&(S[t(364,"x^Cl")]=x[t(428,"5Y8l")]+e.translationX,m[t(304,"HMKk")]=k[t(411,"Q&ff")]+e[t(368,"l!^U")])})[n(341,"@Yc2")](()=>{const e=n;o.value&&!h[e(344,"!a%$")]&&runOnJS(P)(S[e(345,"GLh8")],m[e(315,"tu!X")])}),r=Gesture[n(436,"dd)p")]()[n(357,"dd)p")](250)[n(440,"Q&ff")](()=>{const e=n;o[e(323,"$ky#")]&&!h[e(402,"pHg)")]&&runOnJS(O)()});return Gesture[n(362,"GLh8")](a,r)},[]),g=e.id,G=useAnimatedStyle(()=>{const e=i,o=u[e(433,"(T50")](t[e(316,"CGnh")],g),n=1===h[e(437,"!((8")],W=o||n?1:TRAY_SCALE,a=n?1:o?100:10+g,r={};r[e(294,"E$X&")]=f[e(347,"wi$V")]+"deg";const s={};return s[e(407,"s!$#")]=140,{transform:[{translateX:u[e(401,"l!^U")](S[e(282,"eM!Z")],l)},{translateY:m[e(411,"Q&ff")]-l},r,{scale:withTiming(W,s)}],zIndex:a}}),T={};T[i(435,"#24z")]=e[i(279,"l!^U")],T.height=e[i(379,"tMTf")];const V={};V[i(296,"$ky#")]=C,V[i(421,"GLh8")]=e.color;const y={};return y[i(375,"30YL")]=C,y[i(384,"30YL")]=e.stroke,y[i(319,"fY^G")]=u.bcNdQ,y.strokeWidth=2.5,y.strokeJoin="round",_0x47c55d(GestureDetector,{gesture:Q,children:_0x47c55d(_0x5193a5[i(261,"ix*b")],{style:[styles[i(371,"nF&c")],T,G],children:_0x47c55d(Canvas,{style:p,children:_0x46afa1(Group,{children:[_0x47c55d(Path,V),_0x47c55d(Path,y)]})})})})},PieceView=_0x4d4341.memo(PieceViewInner,(e,t)=>e[_0x33ba01(317,"3lE@")]===t[_0x33ba01(427,"x9o@")]);function _0x5412(e,t){e-=261;const o=_0x2447();let n=o[e];if(void 0===_0x5412.LzzoGf){const e=function(e,t){let o,n,W=[],a=0,r="";for(e=function(e){let t="",o="";for(let o,n,W=0,a=0;n=e.charAt(a++);~n&&(o=W%4?64*o+n:n,W++%4)?t+=String.fromCharCode(255&o>>(-2*W&6)):0)n="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(n);for(let e=0,n=t.length;e<n;e++)o+="%"+("00"+t.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(o)}(e),n=0;n<256;n++)W[n]=n;for(n=0;n<256;n++)a=(a+W[n]+t.charCodeAt(n%t.length))%256,o=W[n],W[n]=W[a],W[a]=o;n=0,a=0;for(let t=0;t<e.length;t++)n=(n+1)%256,a=(a+W[n])%256,o=W[n],W[n]=W[a],W[a]=o,r+=String.fromCharCode(e.charCodeAt(t)^W[(W[n]+W[a])%256]);return r};_0x5412.abIeyX=e,_0x5412.hPFzUf={},_0x5412.LzzoGf=!0}const W=o[0];_0x5412.VKOvrA!==W&&(_0x5412.hPFzUf={},_0x5412.VKOvrA=W);const a=_0x5412.hPFzUf[e];return void 0===a?(void 0===_0x5412.gWtyJL&&(_0x5412.gWtyJL=!0),n=_0x5412.abIeyX(n,t),_0x5412.hPFzUf[e]=n):n=a,n}PieceView[_0x33ba01(312,")Q3I")]="PieceView";export const GameBoard=_0x4d4341[_0x33ba01(360,"wi$V")](({soundEnabledRef:e,hapticEnabledRef:t})=>{const o=_0x33ba01,n={wmQnI:function(e,t,o,n){return e(t,o,n)},CZynN:function(e,t){return e<t},VfuDd:function(e){return e()},kpVph:function(e,t,o){return e(t,o)},TBdCu:function(e,t){return e(t)},HCtHN:function(e,t,o){return e(t,o)}},W=n[o(320,"Q&ff")](useLevel),a=n[o(367,"&eS4")](useResetVersion),r=n.kpVph(useMemo,()=>generateLevel(W),[W,a]),s=n[o(326,"!a%$")](useSharedValue,-1),d=useSharedValue(useTangramStore.getState()[o(390,"dYnZ")]?1:0);n[o(343,"l!^U")](useEffect,()=>{const e=o;return d[e(361,"30YL")]=useTangramStore[e(280,"j@CJ")]()[e(426,"EGu0")]?1:0,useTangramStore.subscribe(t=>t[e(358,"5Y8l")],t=>{d[e(324,"]r6s")]=t?1:0})},[d]);const i=n.TBdCu(useRef,r);i[o(415,"ZY$$")]=r;const u=useRef([]);useEffect(()=>{const e=o;u.current=new Array(r[e(288,"x9o@")][e(346,"!jDZ")])[e(272,"$ky#")](!1),s[e(388,"]Hfu")]=-1},[r,s]);const l=useRef((e,t,W,a)=>{const r=o,s=i[r(423,"&eS4")].pieces;let d=-1,l=1/0,S=!1;for(let o=0;o<s[r(301,"#24z")];o++){const i=s[o];if(u[r(306,"]r6s")][o]||i[r(424,"nF&c")]!==e)continue;const m=Math[r(275,"fY^G")](t-i[r(334,"ZY$$")],W-i[r(295,"ix*b")]);m>SNAP_DIST||(n[r(322,"H*(G")](isRotationMatched,a,i[r(383,"3Kz6")],i[r(336,"!a%$")])?m<l&&(l=m,d=o):S=!0)}if(n[r(391,"#24z")](d,0))return S?r(285,"phm9"):null;u.current[d]=!0;const m=s[d];return{cx:m[r(438,"4J%U")],cy:m[r(359,")Q3I")],rot:snappedRotation(a,m.targetRot,m[r(265,"vcVC")])}})[o(415,"ZY$$")],S=useRef(()=>{const e=o;useTangramStore[e(431,"CGnh")]()[e(308,"@Yc2")]()})[o(385,"E$X&")],m={};return m.pieces=r[o(350,"!jDZ")],_0x46afa1(_0x5193a5.View,{style:styles[o(414,"pHg)")],children:[_0x47c55d(Silhouette,m),r[o(354,"x^Cl")][o(412,"@Yc2")](o=>_0x47c55d(PieceView,{piece:o,activeSV:s,playingSV:d,claimTarget:l,onPlaced:S,soundEnabledRef:e,hapticEnabledRef:t},o.id))]},a)});GameBoard.displayName="GameBoard";const _0x375bde={};_0x375bde.width=BOARD_W,_0x375bde.height=BOARD_H,_0x375bde[_0x33ba01(348,")Q3I")]=_0x33ba01(389,"vcVC");const _0x963bb={};_0x963bb[_0x33ba01(310,"GLh8")]=_0x33ba01(434,"E$X&"),_0x963bb[_0x33ba01(369,"x^Cl")]=0,_0x963bb[_0x33ba01(267,"E$X&")]=0;const _0x4504eb={};_0x4504eb.board=_0x375bde,_0x4504eb[_0x33ba01(277,"tu!X")]=_0x963bb;const styles=StyleSheet[_0x33ba01(318,"dd)p")](_0x4504eb);function _temp(e){const t=_0x33ba01,o={};return o[t(342,"EGu0")]=e[t(349,"2SSg")],o[t(330,"x9o@")]=_0x315613[t(378,"s!$#")],_0x47c55d(Path,o,"f-"+e.id)}function _temp2(e){const t=_0x33ba01,o={};return o[t(425,"]Hfu")]=e[t(403,"x9o@")],o[t(404,"pHg)")]=_0x315613[t(335,"Q&ff")],o[t(432,"s!$#")]=t(439,"dYnZ"),o[t(397,"2SSg")]=2,{GLSVB:function(e,t,o,n){return e(t,o,n)}}[t(400,"30YL")](_0x47c55d,Path,o,"s-"+e.id)}
@@ -1 +0,0 @@
1
- "use strict";const _0x186440=_0x22f4;!function(){const e=_0x22f4,r=_0x1f7e();for(;;)try{if(381154==parseInt(e(491,"bfFY"))/1+parseInt(e(460,"0WhL"))/2+parseInt(e(469,"A^Cj"))/3+-parseInt(e(476,"i@q3"))/4+-parseInt(e(484,"z0M%"))/5*(parseInt(e(474,"eF6]"))/6)+parseInt(e(467,"AsIa"))/7*(-parseInt(e(485,"rQpm"))/8)+parseInt(e(481,"]q[U"))/9*(-parseInt(e(457,"7kn@"))/10))break;r.push(r.shift())}catch(e){r.push(r.shift())}}();import{c as _0x10fa3b}from"react/compiler-runtime";import _0xb57e53 from"react";import{View}from"react-native";import{useTimeLeft,useScore,usePlacedCount,useTangramStore}from"../TangramStore.js";import{ScoreBoardContainer,ScoreValue,ScoreTimer,ScoreColumn,scoreBoardStyles as _0x2b2e8d}from"../../../helpers/index.js";import{jsx as _0x70147f,jsxs as _0x1e8fd7}from"react/jsx-runtime";export const ScoreBoard=_0xb57e53[_0x186440(486,"43op")](e=>{const r="(*O^",o=_0x186440,t={SiDbk:function(e){return e()},IAXfD:function(e,r,o){return e(r,o)},tFNrN:function(e,r){return e!==r},RucGB:function(e,r,o){return e(r,o)},gFLOJ:function(e,r){return e!==r},cCPaz:o(463,"z0M%")},n=_0x10fa3b(13),{offset:f}=e,d=void 0===f?0:f,s=useScore(),W=t[o(465,"D$%%")](usePlacedCount),a=useTangramStore(_temp),u=useTimeLeft();let i;if(n[0]!==s){const e={};e.score=s,i=t[o(477,r)](_0x70147f,ScoreValue,e),n[0]=s,n[1]=i}else i=n[1];const x=W+"/"+a;let C,S,m,_;if(n[2]!==x){const e={};e[o(475,"kVuB")]=o(466,"EmkT"),e[o(464,"!IqB")]=x,C=_0x70147f(ScoreColumn,e),n[2]=x,n[3]=C}else C=n[3];if(t.tFNrN(n[4],u)){const e={};e.seconds=u,S=_0x70147f(ScoreTimer,e),n[4]=u,n[5]=S}else S=n[5];if(n[6]!==i||t[o(479,r)](n[7],C)||t.tFNrN(n[8],S)){const e={};e[o(458,"h)Oh")]=_0x2b2e8d[o(488,"kduq")],e[o(468,"uG$u")]=[i,C,S],m=t[o(490,"L0u8")](_0x1e8fd7,View,e),n[6]=i,n[7]=C,n[8]=S,n[9]=m}else t.gFLOJ(o(471,"(*O^"),t[o(492,"AsIa")])?m=n[9]:_0x112132=_0x127d5d[9];if(n[10]!==d||n[11]!==m){const e={};e[o(473,"a$^R")]=d,e[o(461,"0WhL")]=m,_=_0x70147f(ScoreBoardContainer,e),n[10]=d,n[11]=m,n[12]=_}else _=n[12];return _});function _0x22f4(e,r){e-=457;const o=_0x1f7e();let t=o[e];if(void 0===_0x22f4.ABwSsz){const e=function(e,r){let o,t,n=[],f=0,d="";for(e=function(e){let r="",o="";for(let o,t,n=0,f=0;t=e.charAt(f++);~t&&(o=n%4?64*o+t:t,n++%4)?r+=String.fromCharCode(255&o>>(-2*n&6)):0)t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(t);for(let e=0,t=r.length;e<t;e++)o+="%"+("00"+r.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(o)}(e),t=0;t<256;t++)n[t]=t;for(t=0;t<256;t++)f=(f+n[t]+r.charCodeAt(t%r.length))%256,o=n[t],n[t]=n[f],n[f]=o;t=0,f=0;for(let r=0;r<e.length;r++)t=(t+1)%256,f=(f+n[t])%256,o=n[t],n[t]=n[f],n[f]=o,d+=String.fromCharCode(e.charCodeAt(r)^n[(n[t]+n[f])%256]);return d};_0x22f4.OytMXC=e,_0x22f4.rdbrdV={},_0x22f4.ABwSsz=!0}const n=o[0];_0x22f4.qWYQwB!==n&&(_0x22f4.rdbrdV={},_0x22f4.qWYQwB=n);const f=_0x22f4.rdbrdV[e];return void 0===f?(void 0===_0x22f4.hMbQvZ&&(_0x22f4.hMbQvZ=!0),t=_0x22f4.OytMXC(t,r),_0x22f4.rdbrdV[e]=t):t=f,t}function _temp(e){return e[_0x186440(482,"6gCk")]}function _0x1f7e(){const e=["sSoCgCk7fa","wdClWPRcVW4","p8o+fCoMWOBdUxldKa","gSoaASkowwurW78","xhxcKSomWPJdOmkLWRmEW7HJCXO","smkyn8oubs9mW4aiWRldNSoPWPe","nbNcLtZdIa","puz8W6NdIMVcH8ofWPuPW74w","WOBcQrTbCmoM","WOFcLf/cJSkXW5FcQLRdOmkpW4ug","WQtcVXhcPre","W77dR2WEjCoZWQCRW47dUI/cHIu","cZFcLa3dMW","WPldPwBdT1lcVCkSWPFdGdSnivu","nJdcGHNdKq","W5PwBtuNWQZcO8kzW59ada","WQjlp35JWRBcTu/cNq","WQ3cOrzsWRNcPs7cU8opWPq2","W5BdHr7dJSoTWOdcLKBdOSkmW7G","WQaJW4NcGfewWOi","WPu2W5CPgmkKaI9RWP5S","e0xdPCkF","WOFdRIJdHSo1WPxcQa","W7VdSCot","rCowzvrbW4RcJCk7WPhdTcje","WRZcJsa7W6C","W5uRiepdLCkRc8oSa2dcIc8","ACklcCooWPe","W7Ocn8kCbSkbaCkLdeBcNWu","ACo4y8k4WPm","W7eYgqldGZHHgSkj","W5hcTSolu2NdQCoJW5FdMCkLWOJdVMO","WOpdQSkwdJVcRmkWW6G","ASowWQRcVCk5WPCOeftdIG","W605W47cNMK","W5xcSd7cSWe"];return(_0x1f7e=function(){return e})()}ScoreBoard[_0x186440(483,"eF6]")]=_0x186440(462,"6M8Y");
@@ -1 +0,0 @@
1
- "use strict";const _0x5c8641=_0x13e2;!function(){const t=_0x13e2,n=_0x41a5();for(;;)try{if(936049==-parseInt(t(435,"UODq"))/1+-parseInt(t(494,"kxnP"))/2+-parseInt(t(376,"pySa"))/3+parseInt(t(269,"YVPB"))/4*(-parseInt(t(367,"lFtz"))/5)+-parseInt(t(296,"Ur@N"))/6*(parseInt(t(405,"ezi("))/7)+-parseInt(t(392,"m%dW"))/8+parseInt(t(413,"Q![4"))/9)break;n.push(n.shift())}catch(t){n.push(n.shift())}}();import{TANK_1990_GAME_CONFIG}from"./Tank1990Constants.js";export const formatScore=t=>t.toLocaleString();function _0x41a5(){const t=["WQBdSevdbCkMB8k+WQVcP8k3WQXRW6m","WQr1W5aK","W6HMySoUWRy","gJRcRSk2ha","W6rGhcZdRq","W7lcUCkTbW","WO4+nMPP","aGTeeK7dMmkhhX0","hGJcV8o7dW","iCkucZxdLe9VjgFdI8keWPtcUqiHW4q","hCk8bxDfWQe4W5i+WRK","WQSuWPxcLq","pJpcM8ojx8kS","W5XultFdR2y","pCouW5JcJNinBSkXtW","WOa3ogLVW7e","DaNcUSkRWOa","WRddR2y","W6LtgHZdGa","WPdcQmoUW7pdRG","tIJcVSkYWPm","W7zfW4xdKXpdGWCrxwSltH4","WQKVEve","W6ZcTsJdRvBdJ1f3WPDcgCoi","WORdJ8kJWPT4","W7z8vSo2WR/dS2/dVa","WQjsW6ODiCoImGJdKa","ASoMWPpcUCk+","iXpcI8oiea","mCkbtCowW4m","WOOcufTJ","DhtcSGpcNq","imkvaYJdJa","kXH+CW","WPBdJN3cMcC","W4FdUCog","WQlcRmopW7VdPG","mmkurSoxW4dcIG","qdnSlCkE","W5qgWQ3cVXe","zmkdx8k1W5G","W4ddOmoXWRzv","mCo/lIFcNGlcMYVcRCoiW73dOSoXl8k8WRrSWPaLWOiNW7j0","EM3cTWZcKq","WReZB0a","WQyFgW","w8kaWRBcQNCO","AWTjb8ky","W4BdO8oIWQPAWP4DWPxcHCkPDgpdGCkc","u8oGWRhcSmkKs3yV","WRWImIFcLbCUW4tcOCoo","W5JdSCogWQnj","W5VdJhfCa8oJW7Pd","hdHIkee","m8oThWBcVW","fCkPirNdSq","pI9JpNNdVW","DNdcQq","WQuqWOdcHa","WRpdOwe","W5v7yCoVWRG","W6f1DwFcIJeTW7pcHSoqW643","bJBcKa","W4P8u1/cUW","oZVcKCozwa","WQPyW5CGW6a","W6ZdS20","jYr7d0m","W4dcKSkHtue","pmkHjG","W6FdNCkvWPlcMW","WQtcTvtdNZxcGa","jSkCwSowW4ZcK8kcBCkJ","gdnhuGvJhSozAmoS","sZjgkq","n8kJishdHW","W4ldQ2PGlq","W4ddUSkIWO/cKCksWOq","W5L3W4lcSmkS","W4FcTmkVqxy","p8oRmt/cVX/cTG","WO/cHqFcKmkDr2itmtS","WRL/W7aTW6/dINpdMa","hIRcOmouFW","W4HZW57cOCkM","aHvIWR3dGq","W4WeWOpcVcO","cc91WOtdMCowmSoBWRNdGNxdISofifpdHSovCa","W7ldRaz3W4K","FwFcRGpcLCkaW5tdTuVdTW","w1ddKW","W70gWRNcIXm","W5HbpcS","hSoZnaFcIW","Dtmpkmo4","WOvIW6Gxka","WRVdUMvk","WRy0iNar","zqzv","W7xdL3r8fq","rruqomog","WP8RWPFdO8oPW4dcRHPib8kgvq","kmooW5/cP0i","xMtdOSkkWOVdVW","ChRcVWpcJSkB","td5fomok","zuBdOmklWRq","W55yt3lcTa","WPWyr0ZcNW","i8kHfMjx","W791AhFcOZu","yxBdJSkHAmkWW6FdMCoBWPlcJSkPW70","zqjhbmkEWOO","W48mWPVcVcS","aebth8ofWQ7dHmoSW4i","dmollZ/cQa","W6JcJCkiu8ojWOVdLCklWPH+EW","g0ruf8ox","WOaHsxFcGq","n3XVnG","W4TYW4hcUSkT","phBdP8klWRmDECoqWRC","W7RdUhRcMZS","WQVdRgjb","eCk7ACo1W54","WQeLAeS","W7FdHbDb","WRqEWP7cHa","jmoMnZ7cUq","qtzuimohsW","WP7cO8kcW7yoW5zaWOhcOCkDshVdIW","BtFdSxHq","AGPfi8oz","W4BdMwH3lG","W5ZcRCk+","WOWCtLlcPG","W6hdR2bNlmofW49Jw8k0WOj6WPxcImkzxfKnF8kvWQK","W6NdVMNcGq","AZ5yj8o/","tSo3WQlcUq","W6NdUgZcIJaiW6GbWRK","uSkhWQW","kmkpiLD1WPS","imkDcItdL0y","W69BtCokWPe","WRhdO8ksWOTRW5NcLYDV","WPFcOCoPW77dGmoaW5vEDSoaW4iMp2a","tMtdV8kl","WOZdMSkYWPnn","WRhdO8kwWPXZ","WOW9lMS","W5ZdOmoxWQnF","W7JdPLtdJmki","WPO7pM1V","WRvIW4uSW7FdRa","A0pdOZm0","W6RdNSo3WOTIWRG+WQ7cLCkzr0ZdQ8k5k0ZcHJxdKG","xhddV8kg","WRCig0a","zhK8yctdUCkLitOlW7q","nSkfdLvs","FNpcSqdcIa","W7f8rmopWRS","W7r0dG3dSW","W699aaldLuCzWPNcOW","W4ddNK9udCo3","WOtcHXybw8kSWQCbqSk6WPzsWRBcTW","AvK5j2mcB8kTASo+WPFcMGNcLq","WR/dOMi","WOKBD1lcUG","W4X+A8owWPe","y0/dRX8f","W4VdHhNcHX4","W4LXW5NcUW","W7dcUSk1bMK","nr7cMmoGCG","WRHLW5qvW6FdN3m","W6dcHSkRsLG","chbgjCoG","ASkkuCk2W55l","W7BcKCkgAfFdSSoaimoDW7Wy","W6xdKLtcVJa","CfRdLsWr","eCkBfuvG","W7DQz8o2WQRdOG","hZ7cJmksiq","gmkzACokW7C","brFcS8opEa","WQhdUmkFWPv2W77cLYvKWRLAW45MW4BcPa","aSorW6NdVY1VDfy3rJTwW4y","W5CHWOZcIrG","fXdcU8oifa","WQRcVfRdNdm","WQVdQMDkb8kRy8kJWOC","iJn6pa","WQPEW74m","W4f7W4JcOq","W4f1W6ZcS8kx","W55MAd0UWQNcM8kSWPRdJKJdLW","FG9jhCkgWOyDd1HSzCo7W5ddPvz2","FfFdNsCb","W4pcOSk0lge","DGhdSg5h","WQJcUuFdLIlcNmoSW61S","WR0Mn0bH","oq5vWQ0","oSkzdsFdKf8","WPRcS8oZ","xXNdIW","W4BdHLfv","FcJcMCkNWOW","gYlcK8kF","Fe7dScee","Fq4FiCoI","shFcNWRcLq","y8ktWPFcPNW","W5JdUCowWRjt","zGRdNMnd","WRL/W6eTW6FdHxm","W5JdN1ZdI8k3","zSkar8k0","W5HQoaZdHq","W5pdTmksWQtcPa","WQRdUwhcVG","W55ziIRdPxK","W49/W53cSmkBWPxcNcP/dSkUrSos","kXTkWQFdPa","WRCJEe3cVW","WRv/W6iNW50","W7RcS8k8hq","W5RdPLhcPta","W4ZdKL3dGmkQzq","W51IA8oXWPi","lXzwWQ0","ttXciG","iHtcJmksaG","W7VdPsnWW6y","WQ3dThtcVGW","W5OmWPZcVa","E8kEySkpW4y","uSoKWRFcU8kq","W49bu1hcNq","W77dPxVcIJ8","W6tdN3ldNCkD","kCoNlty","WPyKWOhcJvm","yqjaha","oCo3lZBcUr/cGchcOa","B8kjWPVdKYrjC8kKs2tdSrK","WOGteNSu","WRiCkKyN","w8kaWR7cOwS0","oq1HEsG","mcnMlxtdUq","W49aq8oRWQC","WPJcKLtdNqS","mWrGCs5C","WQZdQxBcSXq","WOqvx0W","W7LGDmoFWR/dQwi","jGpcQSkYjG","FW5bamkE","pSkbo10","WQPuW60Fca","WR3cMx/dQYm","WRrJW5CV","WPSaxf1S","W4hdI0rvdG","fCogdthcVq","prnNDte","FHqnbCof","Eq5kdCkz","WOKssG","iMDS","W7n3BSo4WOW","hd7cHmkdoG","W4RdIKpdGq","WOiyvMhcLmoDCt3cGKnj","W6xdKqHlW5W","W4bDkJO","WQNdR3PafG","FemCW7ZcPSk0qSkMWOddR13dNmofkq","trpdL2XeW7/dG2pcTCoXWQtcNSkptCo0tG","xhxdHcqN","W7TMDmo/WR3dVMpdOCku","mCoxW4/cJfa","W4BcPCkKqh3dIW","sSkjWPdcNMG","eaTFn10","qMRdUW","jmkzr8oCW50","WRmiWOpcHa","WOqiuvPA","W43dSCobWQm","emkBhrNdU8kaW4HWW7lcRuyE","WPZcPN3dMci","WRWXD3nxjCk+nuK","gSoxW7/cMxm","oSkvebtdMuvr","W6ZdI2BdNCkk","r0ddLXe","W7ZdHLldLSkQ","W4hdV8of","WPWwCh9e","i8ksfrBdQG","W5OkWQNcUYO","W4ZdP0tdOmk0","W4a1WQVcJre","h8oyW4JcQx0","aCoKW5/cJxG","W5HbortdQW","W5xdNvZcRcO","x8kDWRFcR00","W7NdQg7cIG","imkhqCoqW4q","mmkHx8o3W54","WReZAN/cQG","csxcICkuoq","W4dcLSk+zL0","F8k0WRFcUM4","WOS3pe5/","WOGFl10K","jHbCqZy","ngrRnSoO","xsPfkq","W6L9DhBcRYW2W7NcVa","WOKuxq","jwLWpmoO","WRy6EKdcRW","W5hdG3ddLmkR","sCoyWQFcHCkC","uvRcMa3cSG","BZFcVSkfWQK","wZjBkmoCtG","jdZcJSo0","W6fXygC","W4VdKeVcGr8","FqywlCo5uG","W6T7W4ZcL8kZ","W4ldVmkIWQ/cK8kfWOudBW","W4hdIazwW4e","vXyEm8o9","W4dcVCk6qq","p8ouW4BcN3ql","pCowW6lcJMm","ymkRWP7cI24","EX4ila","WPVdHCkRWPbl","mmooW7RcH3aaySkSy1/dTbpcU8kV","mWrOyG","nCoyW4tcJgur","WRJcUvNdLJi","W7tcSCkCc2G"];return(_0x41a5=function(){return t})()}export const createInitialMap=t=>{const n="2vtP",W="K*tU",e="hvC4",o="gvsv",r="KcQ*",i="&ytY",d="U&tl",s="UODq",a=_0x13e2,u={};u[a(343,"W%E#")]=function(t,n){return t>=n},u[a(534,"ezi(")]=function(t,n){return t>=n},u.yxjmc=function(t,n){return t>=n},u[a(204,"x)&2")]=function(t,n){return t!==n},u[a(222,"lkfV")]=a(330,"pkjI"),u[a(285,n)]=function(t,n){return t<n},u[a(390,"zMRA")]=a(539,"pySa"),u[a(427,"x)&2")]=function(t,n){return t-n},u.QUrlr=function(t,n){return t-n},u.PvHkc=function(t,n){return t*n},u[a(190,"kxnP")]=function(t,n){return t-n},u[a(436,"2vtP")]=function(t,n){return t===n},u.CcrXw=function(t,n){return t+n},u[a(209,"vsKS")]=function(t,n){return t-n},u[a(370,W)]=function(t,n){return t<n},u[a(446,"sP24")]=function(t,n){return t-n},u[a(280,"YVPB")]=function(t,n){return t-n},u[a(223,"hlgB")]=function(t,n){return t>=n},u[a(266,"lFtz")]=function(t,n){return t<n},u[a(340,"cydA")]=a(207,"K*tU"),u.HZtuq=function(t,n){return t-n},u[a(474,e)]=function(t,n){return t/n};const k=u,f=TANK_1990_GAME_CONFIG[a(256,o)],x=TANK_1990_GAME_CONFIG.GRID_HEIGHT,l=[];for(let t=0;t<x;t++){const t=[];for(let n=0;k[a(406,"gvsv")](n,f);n++){const n={};n[a(342,r)]=a(321,"LZf7"),n[a(261,"msM&")]=0,t[a(403,"MnY$")](n)}l.push(t)}const y=Math.floor(f/2),h=x-3,P={};P.type=k[a(322,"M3AV")],P[a(430,"zMRA")]=1,l[h][y]=P,[{x:k.hCJQc(y,1),y:k[a(491,"js%K")](h,1)},{x:y,y:h-1},{x:y+1,y:h-1},{x:k[a(361,i)](y,1),y:h},{x:y+1,y:h}][a(505,"zMRA")](t=>{const n=a;if(k[n(510,"7ANJ")](t.x,0)&&t.x<f&&k[n(229,"x)&2")](t.y,0)&&t.y<x){const W={type:"steel"};W[n(350,"y0Pd")]=0,l[t.y][t.x]=W}});const C=12+Math[a(286,"PO[S")](k[a(417,"sP24")](Math[a(283,"K*tU")](),8));for(let t=0;t<C;t++){let t=0;for(;k[a(443,"pkjI")](t,30);){const n=Math[a(524,"kG1b")](Math[a(230,"cydA")]()*f),e=2+Math[a(526,r)](k[a(282,"DZw4")](Math[a(388,o)](),k.CjUrb(x,6))),i=l[e]?.[n];if(k[a(529,"sP24")](i?.type,a(351,d))&&e>=2&&!(e>=h-2&&n>=y-2&&n<=k[a(428,"sP24")](y,2))&&!(e>=x-2)&&!(e<=1&&(n<=1||n>=f-2||Math[a(414,"YVPB")](k[a(203,"@qIi")](n,Math[a(536,W)](f/2)))<=1))){const t={};t[a(537,"js%K")]=a(395,"5y4P"),t[a(358,"PP4Y")]=0,l[e][n]=t;break}t++}}const m=k.CcrXw(14,Math.floor(6*Math[a(411,"M3AV")]())),S=[];for(let t=0;k[a(238,s)](t,m);t++){const t=1+Math[a(498,"Q![4")](k[a(188,"7ANJ")](Math[a(226,d)](),3)),W=1+Math[a(472,"ZqwE")](k[a(461,s)](Math[a(356,"Ur@N")](),3));let o=0;for(;k[a(443,"pkjI")](o,20);){const r=Math[a(420,"WffY")](Math[a(349,"MnY$")]()*k[a(495,"W%E#")](f,t)),d=2+Math.floor(Math[a(258,"696!")]()*(x-6-W));if(!(!(d>=2)||d>=h-2&&r>=y-2&&r<=y+2||d>=k.HNlCG(x,2)||S[a(373,"js%K")](n=>r<n.x+n.w+1&&r+t+1>n.x&&d<n.y+n.h+1&&d+W+1>n.y))){const o={};o.x=r,o.y=d,o.w=t,o.h=W,S[a(457,"]m@S")](o);for(let o=0;o<W;o++)for(let W=0;W<t;W++){const t=r+W,s=d+o;if(k[a(274,"6L$Y")](t,0)&&t<f&&s>=0&&k[a(339,i)](s,x-3)){const W=l[s]?.[t];if(W&&W[a(227,"6L$Y")]!==a(488,"x)&2")&&W[a(469,"YVPB")]!==a(484,n)){const n={};n[a(522,"lkfV")]=k[a(311,e)],n[a(425,"PO[S")]=2,l[s][t]=n}}}break}o++}}[1,k.HZtuq(Math[a(220,"YdT(")](x/2),2),Math[a(465,"lkfV")](k[a(474,"hvC4")](x,2))+3][a(323,"m%dW")](t=>{const n=a;if(k[n(374,"&ytY")](t,0)&&t<x-3)for(let W=0;W<f;W++){const e=l[t]?.[W];if(e&&"steel"!==e[n(247,"hvC4")]&&k[n(409,"@qIi")](e.type,"base")){const e={};e[n(451,"ZqwE")]=k[n(287,"pySa")],e[n(497,"UODq")]=0,l[t][W]=e}}});const M={};return M.tiles=l,M[a(521,"]m@S")]=f,M.height=x,M};export const createPlayerTank=t=>{const n=_0x13e2,W={};W[n(199,"lkfV")]=function(t,n){return t*n},W[n(363,"YdT(")]=function(t,n){return t+n};const e=W,o=TANK_1990_GAME_CONFIG[n(523,"vsKS")];return{id:n(259,"@qIi"),x:e[n(208,"K*tU")](2,t)+t/2,y:(o-1)*t+t/2,direction:"up",isPlayer:!0,isAlive:!0,lastFireTime:0,spawnProtectionEndTime:e[n(363,"YdT(")](Date[n(535,"MnY$")](),TANK_1990_GAME_CONFIG.SPAWN_PROTECTION_TIME),lastDirectionChangeTime:0}};export const createEnemyTank=(t,n)=>{const W=_0x13e2,e={};e[W(437,"6L$Y")]=function(t,n){return t/n};const o=e,r=TANK_1990_GAME_CONFIG[W(319,"Q![4")],i=[{x:0,y:0},{x:Math[W(438,"7ANJ")](r/2),y:0},{x:r-1,y:0}],d=2*t*(2*t);for(const e of i){const r=e.x*t+t/2,i=e.y*t+o[W(301,"%&8J")](t,2);let s=!1;for(const t of n){const n=t.x-r,W=t.y-i;if(n*n+W*W<d){s=!0;break}}if(!s){const t=Date.now();return{id:W(400,"hvC4")+t+"_"+Math.random(),x:r,y:i,direction:W(383,"x)&2"),isPlayer:!1,isAlive:!0,lastFireTime:0,spawnProtectionEndTime:t+TANK_1990_GAME_CONFIG[W(382,"M3AV")],lastDirectionChangeTime:t}}}return null};function _0x13e2(t,n){t-=187;const W=_0x41a5();let e=W[t];if(void 0===_0x13e2.NKpacB){const t=function(t,n){let W,e,o=[],r=0,i="";for(t=function(t){let n="",W="";for(let W,e,o=0,r=0;e=t.charAt(r++);~e&&(W=o%4?64*W+e:e,o++%4)?n+=String.fromCharCode(255&W>>(-2*o&6)):0)e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(e);for(let t=0,e=n.length;t<e;t++)W+="%"+("00"+n.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(W)}(t),e=0;e<256;e++)o[e]=e;for(e=0;e<256;e++)r=(r+o[e]+n.charCodeAt(e%n.length))%256,W=o[e],o[e]=o[r],o[r]=W;e=0,r=0;for(let n=0;n<t.length;n++)e=(e+1)%256,r=(r+o[e])%256,W=o[e],o[e]=o[r],o[r]=W,i+=String.fromCharCode(t.charCodeAt(n)^o[(o[e]+o[r])%256]);return i};_0x13e2.ErBCnB=t,_0x13e2.vxpdhz={},_0x13e2.NKpacB=!0}const o=W[0];_0x13e2.gZIFEU!==o&&(_0x13e2.vxpdhz={},_0x13e2.gZIFEU=o);const r=_0x13e2.vxpdhz[t];return void 0===r?(void 0===_0x13e2.rxEiuP&&(_0x13e2.rxEiuP=!0),e=_0x13e2.ErBCnB(e,n),_0x13e2.vxpdhz[t]=e):e=r,e}export const moveTank=(t,n,W,e,o,r,i,d)=>{const s="vsKS",a=_0x13e2,u={};u[a(264,"@qIi")]=function(t,n){return t/n},u[a(316,"m%dW")]=a(251,"WffY"),u.HXPbg=function(t,n){return t+n},u.tVkiS=function(t,n){return t-n},u[a(424,"YdT(")]=a(513,"M3AV"),u[a(197,"%&8J")]=a(216,"YdT("),u.ZDZVq=a(393,"MnY$"),u[a(233,"kG1b")]=function(t,n){return t*n};const k=u,f={...t};f.direction=n;const x=f,l=W*k[a(337,"2vtP")](r,TANK_1990_GAME_CONFIG.CELL_SIZE);let y=0,h=0;switch(n){case"up":h=-l;break;case k.AHEXk:h=l;break;case a(492,"PP4Y"):y=-l;break;case a(399,"msM&"):y=l}const P=k[a(514,"&ytY")](t.x,y),C=t.y+h,m=.8*r,S=k[a(364,s)](m,2);if(k[a(314,"umO)")](P,S)<0||P+S>i||C-S<0||C+S>d)return x;const M={};M.x=P-S,M.y=C-S;const p={};p.x=P+S,p.y=C-S;const O=[M,p,{x:P-S,y:k.HXPbg(C,S)},{x:k[a(250,"@qIi")](P,S),y:C+S}];for(const t of O){const n=Math[a(366,"pkjI")](t.x/r),W=Math[a(498,"Q![4")](t.y/r);if(n>=0&&n<e[a(310,"696!")]&&W>=0&&W<e[a(302,"ezi(")]){const t=e.tiles[W]?.[n];if(t&&(t[a(365,"YdT(")]===a(276,"ev@k")||t[a(279,"Q![4")]===k[a(429,"gvsv")]||t.type===k[a(313,"ezi(")]||t[a(290,s)]===k.ZDZVq))return x}}const G=k[a(194,"lkfV")](m,m);for(const n of o){if(n.id===t.id||!n.isAlive)continue;const W=P-n.x,e=C-n.y;if(k[a(270,"5y4P")](W*W,e*e)<G)return x}return x.x=P,x.y=C,x};export const fireBullet=(t,n=Date.now())=>{const W="pySa",e=_0x13e2,o={};o[e(468,"m%dW")]=function(t,n){return t+n},o[e(418,"x)&2")]=function(t,n){return t/n},o[e(300,"&ytY")]=e(396,"msM&");const r=o,i=t[e(298,"M3AV")]?TANK_1990_GAME_CONFIG.PLAYER_FIRE_COOLDOWN:TANK_1990_GAME_CONFIG[e(402,W)];if(n-t[e(307,"Ur@N")]<i)return null;const d=r[e(496,"W%E#")](r[e(398,"lkfV")](TANK_1990_GAME_CONFIG[e(189,"ev@k")],2),2);let s=t.x,a=t.y;switch(t[e(493,"&ytY")]){case"up":a-=d;break;case r[e(408,"zMRA")]:a+=d;break;case e(268,"vsKS"):s-=d;break;case e(507,"PP4Y"):s+=d}return{id:e(326,"&ytY")+Date[e(195,W)]()+"_"+Math[e(477,"lkfV")](),x:s,y:a,direction:t[e(449,"7ANJ")],isPlayerBullet:t[e(271,"zMRA")],speed:TANK_1990_GAME_CONFIG[e(187,"LZf7")]}};export const updateBullet=t=>{const n=_0x13e2;let{x:W,y:e}=t;switch(t.direction){case"up":e-=t[n(221,"vsKS")];break;case n(369,"KcQ*"):e+=t[n(325,"umO)")];break;case n(525,"@qIi"):W-=t[n(397,"pySa")];break;case"right":W+=t[n(512,"ev@k")]}const o={...t};return o.x=W,o.y=e,o};export const checkBulletCollision=(t,n,W,e,o,r)=>{const i="sP24",d="DZw4",s=_0x13e2,a={};a[s(421,"696!")]=function(t,n){return t<n},a[s(384,"U&tl")]=function(t,n){return t/n},a.BUUBQ="dKgXb",a[s(482,"kG1b")]=function(t,n){return t===n},a[s(240,"5y4P")]=function(t,n){return t-n};const u=a;if(t.x<0||t.x>o||u[s(262,"lFtz")](t.y,0)||t.y>r){return{hit:!0}}const k=Math[s(526,"KcQ*")](t.x/e),f=Math.floor(u[s(478,"zMRA")](t.y,e));if(k>=0&&k<n[s(248,"zMRA")]&&f>=0&&f<n.height){const W=n[s(244,"7ANJ")][f]?.[k];if(W)if(s(476,"x)&2")!==u[s(487,"Ur@N")]){if(W[s(193,i)]===s(265,d)){if(s(284,"PP4Y")===s(506,"]m@S")){const t={};t.x=k,t.y=f;const n={};return n[s(380,"umO)")]=!0,n.hitTile=t,n}_0x37e817=_0x19b7ec>0?s(508,"gvsv"):"up"}if(u[s(482,"kG1b")](W[s(227,"6L$Y")],"steel")){return{hit:!0}}if(W.type===s(539,"pySa")&&!t.isPlayerBullet){const t={};t.x=k,t.y=f;const n={hit:!0};return n[s(422,"hvC4")]=t,n[s(471,"pkjI")]=!0,n}if(W[s(537,"js%K")]===s(479,"ZqwE")&&t[s(294,"pySa")]){const t={};return t[s(453,d)]=!0,t}}else{const t=_0xcdf74c[_0x375019]?.[_0x4e5678];if(t&&"steel"!==t.type&&t[s(338,"@qIi")]!==s(320,"U&tl")){const t={type:"empty"};t[s(375,"U&tl")]=0,_0x391c4e[_0x46cb19][_0x4d274c]=t}}}const x=(TANK_1990_GAME_CONFIG[s(362,"GHz&")]+TANK_1990_GAME_CONFIG[s(253,"ezi(")])/2,l=x*x,y=Date.now();for(const n of W){if(!n[s(464,"hvC4")])continue;if(u[s(200,"2vtP")](t[s(241,"kxnP")],n[s(328,"hvC4")]))continue;if(y<n.spawnProtectionEndTime)continue;const W=u[s(354,"vsKS")](t.x,n.x),e=t.y-n.y,o=W*W+e*e;if(u.yLmMB(o,l)){const t={};return t[s(336,i)]=!0,t[s(191,"%&8J")]=n,t}}const h={};return h[s(281,"pySa")]=!1,h};export const damageTile=(t,n,W)=>{const e="U&tl",o=_0x13e2,r={};r[o(381,"vsKS")]=function(t,n){return t+n},r[o(456,"lFtz")]=function(t,n){return t<n},r.lougJ=function(t,n){return t-n},r[o(245,"WffY")]=function(t,n){return t===n},r[o(211,"umO)")]=function(t,n){return t===n},r[o(433,"696!")]=function(t,n){return t===n},r[o(415,"vsKS")]=o(237,"kxnP"),r[o(377,"%YIT")]="base";const i=r,d=t[o(324,"pkjI")][W]?.[n];if(!d)return t;if(i[o(198,"2vtP")](d[o(455,"M3AV")],o(515,"Q![4"))||i[o(467,"@qIi")](d[o(440,"ezi(")],o(304,"js%K"))){const r=t[o(517,"PP4Y")][o(308,"]m@S")]((t,e)=>e===W?t[o(305,"YVPB")]((t,W)=>W===n?{...t}:t):t),d=r[W][n];if(d.type===o(225,"lFtz")){if(d[o(375,e)]-=1,d.health<=0)if(i[o(224,"y0Pd")]("dkHer",i[o(212,"UODq")]))d[o(217,e)]="empty";else for(let t=0;t<_0x1af118;t++){const n=kvXgcZ.IVQwm(_0x56771a,t),W=_0x531447+_0x3da5ce;if(n>=0&&n<_0x20a8f6&&W>=0&&kvXgcZ[o(249,"]m@S")](W,kvXgcZ[o(509,"v488")](_0x11732f,3))){const t=_0x4ec195[W]?.[n];if(t&&t[o(490,"&ytY")]!==o(483,"YVPB")&&"base"!==t[o(537,"js%K")]){const t={};t[o(217,"U&tl")]=o(210,"]m@S"),t[o(317,"7ANJ")]=2,_0x11a870[W][n]=t}}}}else d[o(239,"cydA")]===i[o(353,"Ur@N")]&&(d[o(239,"cydA")]="empty");const s={...t};return s.tiles=r,s}return t};const ENEMY_DIRECTION_CHANGE_INTERVAL=800;export const canTankMove=(t,n,W,e,o,r,i,d)=>{const s="zMRA",a=_0x13e2,u={};u[a(254,"6L$Y")]=function(t,n){return t/n},u[a(485,"PO[S")]="down",u[a(501,"7ANJ")]=a(504,"ev@k"),u[a(489,"lkfV")]=function(t,n){return t<n},u[a(352,"MnY$")]=function(t,n){return t-n},u[a(448,"%YIT")]=function(t,n){return t>n},u.GhULw=function(t,n){return t+n},u.OwWUb=function(t,n){return t/n},u[a(416,s)]="steel",u[a(231,"pkjI")]=function(t,n){return t===n},u.XYufi=function(t,n){return t*n},u.ylOSw=function(t,n){return t-n};const k=u,f=W*k[a(394,"5y4P")](r,TANK_1990_GAME_CONFIG[a(360,"YdT(")]);let x=0,l=0;switch(n){case"up":l=-f;break;case k[a(215,"Q![4")]:l=f;break;case k[a(423,"umO)")]:x=-f;break;case"right":x=f}const y=t.x+x,h=t.y+l,P=.8*r,C=P/2;if(k[a(432,"K*tU")](k[a(481,"]m@S")](y,C),0)||k.HzHwo(y+C,i)||h-C<0||h+C>d)return!1;const m={};m.x=y-C,m.y=h-C;const S={};S.x=y+C,S.y=h-C;const M=[m,S,{x:y-C,y:k.GhULw(h,C)},{x:k[a(309,"Ur@N")](y,C),y:k[a(345,"M3AV")](h,C)}];for(const t of M){const n=Math[a(293,"PP4Y")](t.x/r),W=Math[a(220,"YdT(")](k[a(458,"sP24")](t.y,r));if(n>=0&&n<e[a(368,"x)&2")]&&W>=0&&W<e[a(452,"%&8J")]){const t=e[a(431,"]m@S")][W]?.[n];if(t&&("brick"===t.type||t[a(206,"x)&2")]===k[a(416,s)]||k[a(201,"kxnP")](t[a(490,"&ytY")],a(297,"pySa"))||"base"===t[a(235,"umO)")]))return!1}}const p=k[a(202,"kxnP")](P,P);for(const n of o){if(n.id===t.id||!n.isAlive)continue;const W=k[a(533,"UODq")](y,n.x),e=h-n.y;if(W*W+e*e<p)return!1}return!0};export const getEnemyAIDirection=(t,n,W,e,o,r,i,d,s)=>{const a="ev@k",u="K*tU",k="vsKS",f="kxnP",x="zMRA",l="UODq",y=_0x13e2,h={};h[y(538,a)]=function(t,n){return t/n},h.qQaSg=function(t,n){return t<n},h[y(192,"lkfV")]=y(289,"y0Pd"),h[y(346,"cydA")]=y(275,u),h.POEqy=y(359,"2vtP"),h.XzDGR=y(371,k),h[y(277,"y0Pd")]=function(t,n){return t>n},h.Xqfzk=function(t,n){return t>n},h[y(348,f)]=function(t,n){return t*n},h[y(341,"v488")]=function(t,n){return t-n},h[y(306,x)]=y(486,"hlgB");const P=h,C=Date[y(315,"LZf7")](),m=["up",P.XzDGR,y(441,"v488"),"right"];if(s){const s=m[y(499,"ezi(")](n=>n!==t[y(530,"zMRA")]&&canTankMove(t,n,d,W,o,e,r,i));if(P.lkllg(s[y(243,f)],0)){const W=n.x-t.x,e=n.y-t.y;let o=null;if(o=Math[y(291,"W%E#")](W)>Math[y(518,a)](e)?P[y(234,"cydA")](W,0)?y(473,k):y(242,"Q![4"):e>0?"down":"up",s[y(295,"hlgB")](o)){const t={};return t.direction=o,t[y(255,"%&8J")]=!0,t}const r=s[Math[y(536,u)](P[y(516,"cydA")](Math[y(532,"umO)")](),s.length))],i={};return i[y(218,"Ur@N")]=r,i[y(255,"%&8J")]=!0,i}const x={};x.up=y(511,"hvC4"),x[y(419,"pkjI")]="up",x[y(525,"@qIi")]=y(503,"YVPB"),x.right=y(475,"WffY");const l=x,h={};return h.direction=l[t[y(493,"&ytY")]],h[y(445,"PP4Y")]=!0,h}if(P.CYpoj(C,t[y(288,"&ytY")])<800){const n={};return n[y(439,"KcQ*")]=t.direction,n.shouldUpdateTime=!1,n}const S=Math.random();let M;if(P[y(334,"kG1b")](S,.4)){const W=P[y(378,"U&tl")](n.x,t.x),e=n.y-t.y;M=P[y(463,"%YIT")](Math[y(387,l)](W),Math[y(519,"YdT(")](e))?W>0?y(278,"%&8J"):y(228,"Ur@N"):P.Xqfzk(e,0)?P[y(401,"sP24")]:"up"}else if(S<.75)if(y(531,"kxnP")===P[y(306,x)])M=t[y(318,"K*tU")];else{const t=_0x3d82dd[y(252,"msM&")](fEgQDr[y(205,l)](_0x1d4c26.x,_0x405a3f)),n=_0x5cf2b4.floor(fEgQDr[y(520,"zMRA")](_0x10d9f3.y,_0x1ca51f));if(t>=0&&t<_0x3fe023[y(462,"pySa")]&&n>=0&&fEgQDr.qQaSg(n,_0x231e4c[y(292,"UODq")])){const W=_0x17ed9a[y(332,"2vtP")][n]?.[t];if(W&&(W[y(385,"hlgB")]===fEgQDr[y(329,"696!")]||W[y(372,"kG1b")]===fEgQDr[y(299,"ezi(")]||W[y(451,"ZqwE")]===fEgQDr[y(500,x)]||"base"===W.type))return _0x4c814a}}else M=m[Math[y(407,"y0Pd")](Math[y(389,"%&8J")]()*m[y(502,"Q![4")])];const p={};return p[y(260,"kxnP")]=M,p[y(528,"%YIT")]=!0,p};export const shouldEnemyFire=(t,n)=>{const W=_0x13e2,e={};e[W(460,"y0Pd")]=function(t,n){return t<n},e[W(447,"WffY")]=function(t,n){return t-n},e.ceeKd=W(442,"pkjI");const o=e,r=3*TANK_1990_GAME_CONFIG[W(410,"@qIi")];let i=!1;switch(t[W(232,"m%dW")]){case"up":i=Math.abs(t.x-n.x)<r&&t.y>n.y;break;case W(480,"U&tl"):i=o[W(460,"y0Pd")](Math.abs(o[W(450,"msM&")](t.x,n.x)),r)&&t.y<n.y;break;case o[W(213,"msM&")]:i=o[W(273,"hlgB")](Math[W(312,"x)&2")](t.y-n.y),r)&&t.x>n.x;break;case W(459,"cydA"):i=Math[W(454,"%YIT")](t.y-n.y)<r&&t.x<n.x}return!!i||Math[W(470,"@qIi")]()<.3};export const createExplosion=(t,n,W=Date.now())=>({id:_0x5c8641(335,"y0Pd")+W+"_"+Math.random(),x:t,y:n,startTime:W});export const isExplosionFinished=(t,n=Date[_0x5c8641(303,"y0Pd")]())=>{const W=_0x5c8641,e={};return e[W(355,"gvsv")]=function(t,n){return t>n},e.yOZQM(n-t.startTime,TANK_1990_GAME_CONFIG[W(333,"ZqwE")])};export const createMuzzleFlash=(t,n,W=Date.now())=>{const e=_0x5c8641,o=.8*n,r=o/2+.5*o;let i=t.x,d=t.y;switch(t[e(386,"x)&2")]){case"up":d-=r;break;case e(466,"PO[S"):d+=r;break;case e(257,"js%K"):i-=r;break;case"right":i+=r}return{id:"muzzle_"+W+"_"+Math[e(388,"gvsv")](),x:i,y:d,direction:t[e(272,"v488")],startTime:W}};export const isMuzzleFlashFinished=(t,n=Date[_0x5c8641(263,"YVPB")]())=>n-t[_0x5c8641(391,"5y4P")]>100;export const checkBulletToBulletCollisions=t=>{const n=_0x5c8641,W={};W[n(331,"ZqwE")]=function(t,n){return t*n},W[n(196,"ev@k")]=function(t,n){return t+n};const e=W,o=new Set,r=[],i=2*TANK_1990_GAME_CONFIG[n(426,"umO)")],d=e[n(214,"W%E#")](i,i);for(let W=0;W<t.length;W++){const i=t[W];if(i)for(let s=W+1;s<t.length;s++){const a=t[s];if(!a)continue;if(i[n(246,"KcQ*")]===a.isPlayerBullet)continue;const u=i.x-a.x,k=i.y-a.y;u*u+k*k<d&&(o[n(219,"ev@k")](W),o.add(s),r[n(404,"W%E#")]({x:e[n(379,"M3AV")](i.x,a.x)/2,y:(i.y+a.y)/2}))}}const s=t[n(236,"kxnP")]((t,W)=>!o[n(344,"PP4Y")](W)),a={};return a.remainingBullets=s,a[n(434,"5y4P")]=r,a};
@@ -1 +0,0 @@
1
- "use strict";const _0xbdb75e=_0x94ed;!function(){const e=_0x94ed,o=_0x5204();for(;;)try{if(313079==-parseInt(e(461,"Eeu("))/1+parseInt(e(309,"JQfV"))/2*(parseInt(e(418,"0r)*"))/3)+parseInt(e(396,"ruq*"))/4*(parseInt(e(318,"GiWF"))/5)+-parseInt(e(470,"Xblt"))/6+-parseInt(e(452,"u1kj"))/7*(parseInt(e(472,"wSyL"))/8)+parseInt(e(466,"Clkz"))/9+parseInt(e(490,"c&4B"))/10*(-parseInt(e(376,"8C@D"))/11))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{TANK_1990_GAME_CONFIG,getGameConfig}from"./Tank1990Constants.js";import{createInitialMap,createPlayerTank,createEnemyTank,moveTank,fireBullet,updateBullet,checkBulletCollision,checkBulletToBulletCollisions,damageTile,getEnemyAIDirection,shouldEnemyFire,createExplosion,isExplosionFinished,createMuzzleFlash,isMuzzleFlashFinished}from"./Tank1990Service.js";import{playSound,GAME_SOUNDS}from"../../services/SoundsService.js";import{playHaptic,HapticType}from"../../services/HapticsService.js";export const useTank1990Store=create()(immerMiddleware(subscribeWithSelector((e,o)=>({isPlaying:!1,isGameOver:!1,isWin:!1,score:0,lives:TANK_1990_GAME_CONFIG[_0xbdb75e(341,"Xblt")],level:1,enemiesDestroyed:0,enemiesRemaining:TANK_1990_GAME_CONFIG.ENEMIES_PER_LEVEL,playerTank:null,enemyTanks:[],bullets:[],gameMap:null,explosions:[],muzzleFlashes:[],cellSize:TANK_1990_GAME_CONFIG[_0xbdb75e(335,"jjFj")],boardWidth:TANK_1990_GAME_CONFIG.GRID_WIDTH*TANK_1990_GAME_CONFIG[_0xbdb75e(331,"KI(r")],boardHeight:TANK_1990_GAME_CONFIG[_0xbdb75e(443,"e[Q8")]*TANK_1990_GAME_CONFIG[_0xbdb75e(457,"i)$G")],gameVersion:0,mapVersion:0,effectsVersion:0,boardReady:!1,currentDirection:null,isFiring:!1,initializeGame:o=>{const n="Ws4A",t=_0xbdb75e,W={inuwx:function(e,o){return e*o},WKzih:function(e,o){return e(o)}},i=getGameConfig(),d=o,r=Math[t(385,"56sk")](d/TANK_1990_GAME_CONFIG[t(371,"^Y84")]),s=W[t(316,"hTeH")](r,TANK_1990_GAME_CONFIG[t(456,"nd&3")]),a=W[t(334,"!ZZj")](r,TANK_1990_GAME_CONFIG[t(319,"ruq*")]),u=W[t(320,"nd&3")](createInitialMap,1),l=createPlayerTank(r);e(e=>{const o=t;e.isPlaying=!1,e[o(346,"bk(6")]=!1,e[o(363,"jEwh")]=!1,e[o(360,"7jM&")]=0,e.lives=TANK_1990_GAME_CONFIG[o(391,"#Lqi")],e[o(322,"hTeH")]=1,e.enemiesDestroyed=0,e.enemiesRemaining=i[o(427,"Znkx")],e[o(365,"56sk")]=l,e.enemyTanks=[],e[o(513,"GDdT")]=[],e[o(423,"nYfi")]=u,e.explosions=[],e[o(387,"C99z")]=[],e[o(442,n)]=null,e[o(491,"Clkz")]=!1,e[o(464,"GDdT")]=r,e[o(445,n)]=s,e[o(498,"#Lqi")]=a,e.boardReady=!0,e.mapVersion+=1,e[o(394,"dGxN")]+=1,e[o(478,"0Kt1")]+=1})},startGame:()=>{const o=_0xbdb75e,n={};n.KPBeD=o(421,"Znkx"),n[o(375,"7jM&")]=o(380,"@LuN");const t=n;e(e=>{const n=o;if(t[n(378,"v&Vd")]===t[n(454,"0Kt1")])return{MmPPT:function(e,o){return e(o)}}[n(352,"56sk")](_0x5ec8d0,_0x26f8e3);e[n(295,"oXD3")]=!0,e[n(402,"7jM&")]=!1,e[n(405,"b9!M")]=!1})},stopGame:()=>{e(e=>{e[_0x94ed(299,"7jM&")]=!1})},resetGame:()=>{const o=_0xbdb75e;({wxkcA:function(e,o){return e(o)}})[o(312,"VIv^")](e,e=>{const n=o;e[n(382,"jjFj")]=!1,e[n(480,"pFa2")]=!1,e[n(406,"WwUt")]=!1,e[n(357,"z7X8")]=0,e[n(381,"v&Vd")]=TANK_1990_GAME_CONFIG[n(510,"8C@D")],e.level=1,e[n(408,"C2yJ")]=0,e.playerTank=null,e[n(344,"Xblt")]=[],e[n(400,"WwUt")]=[],e[n(444,"bNfV")]=null,e[n(499,"Xblt")]=[],e[n(407,"KI(r")]=[],e[n(474,"jjFj")]=null,e[n(503,"Xblt")]=!1,e[n(383,"c&4B")]=!1,e[n(367,"@VS7")]+=1,e[n(488,"JQfV")]+=1,e[n(356,"bk(6")]+=1})},setDirection:n=>{const t=_0xbdb75e;o().currentDirection!==n&&{DGzZp:function(e,o){return e(o)}}[t(438,"Clkz")](e,e=>{e[t(449,"P@5h")]=n})},setFiring:n=>{const t=_0xbdb75e;o()[t(487,"u1kj")]!==n&&e(e=>{e[t(348,"bNfV")]=n})},spawnEnemy:n=>{const t="bNfV",W="GiWF",i="oXD3",d=_0xbdb75e,r={HwAYa:d(358,"0Kt1"),WJBiT:function(e,o){return e!==o},UXNbM:d(303,"JQfV"),Tvapt:function(e,o){return e<=o},rGOxl:function(e,o){return e===o},Mxobx:d(506,"c&4B"),aJmUK:function(e,o){return e(o)}},s=o();if(!s.isPlaying||s[d(505,"^Y84")])return;const a=getGameConfig();if(s[d(468,"7jM&")][d(514,t)]>=a[d(465,t)])return;if(r[d(377,"!ZZj")](s[d(432,"Mqm[")],0))return;const u=createEnemyTank(s.cellSize,s[d(495,"!ZZj")]);if(u)if(r[d(361,"GiWF")](r[d(343,"nd&3")],d(324,"pFa2"))){const e=_0x593824(_0x253192,_0x5038bd);e&&(_0x33736f.push(e),_0x55735e[d(340,"0Kt1")](_0x9d5b96(_0x3e5cea,_0x37879f,_0x5b591d)),_0x1963e5.lastFireTime=_0x31c389)}else r[d(337,"7jM&")](e,e=>{const o=d;if(r[o(482,"8C@D")](r[o(307,W)],o(469,"bk(6")))e[o(477,"WwUt")].push(u),e[o(313,"c&4B")]-=1;else{const e=r[o(471,"mH^e")][o(476,"wSyL")]("|");let n=0;for(;;){switch(e[n++]){case"0":_0x9f33[o(493,i)]=[];continue;case"1":_0x51dcc0[o(370,i)]=!0;continue;case"2":_0x3fa601[o(401,"GDdT")]=!1;continue;case"3":_0x29f2f2[o(434,"ruq*")]+=1;continue;case"4":_0x574de3.cellSize=_0x40c50f;continue;case"5":_0x5760a8.effectsVersion+=1;continue;case"6":_0x3453dd[o(453,"JQfV")]=[];continue;case"7":_0x2bfd17[o(481,"z7X8")]=_0x25aa6b;continue;case"8":_0x3e946e[o(512,"C2yJ")]=null;continue;case"9":_0x4e8763[o(300,"nYfi")]=0;continue;case"10":_0x28fe54.isWin=!1;continue;case"11":_0x273a88.enemiesDestroyed=0;continue;case"12":_0x110f6f[o(504,"b9!M")]=!1;continue;case"13":_0x50effe.enemyTanks=[];continue;case"14":_0x43f0d3.muzzleFlashes=[];continue;case"15":_0x797dc0[o(388,"jjFj")]=_0x1c1cdf[o(372,"nI2A")];continue;case"16":_0x4b9258[o(336,"e[Q8")]=1;continue;case"17":_0x275661.lives=_0x454f91[o(355,"pFa2")];continue;case"18":_0x47e7a5[o(362,W)]=!1;continue;case"19":_0x563344[o(345,"7jM&")]=_0x40d7c2;continue;case"20":_0x238172[o(394,"dGxN")]+=1;continue;case"21":_0x471852[o(414,"wSyL")]=_0x280b28;continue;case"22":_0x3ade70[o(502,"Xblt")]=_0x3dfb62;continue}break}}})},gameLoop:n=>{const t="b9!M",W="ruq*",i="0Kt1",d="EH9!",r="KI(r",s=_0xbdb75e,a={lkoWI:function(e,o,n,t,W,i,d,r,s){return e(o,n,t,W,i,d,r,s)},ZfRaF:function(e,o){return e===o},gSDhc:s(492,"C2yJ"),ZVQac:function(e,o,n){return e(o,n)},ipaya:function(e,o,n,t){return e(o,n,t)},lubei:function(e,o,n,t,W,i,d){return e(o,n,t,W,i,d)},YOmXX:function(e,o){return e(o)},BEmyY:function(e,o,n){return e(o,n)},wRFah:function(e,o){return e(o)},fJdho:function(e){return e()},HueAY:function(e,o){return e<=o},RXFdU:function(e,o,n){return e(o,n)},GzkuK:function(e,o,n){return e(o,n)},sBmeQ:function(e,o){return e===o},lcJLU:s(460,"^Y84")},u=o();if(!u[s(458,"@LuN")]||u[s(401,"GDdT")]||!u[s(414,"wSyL")]||!u[s(398,"hTeH")])return;const l=Date.now(),k=getGameConfig(),{cellSize:m,boardWidth:x,boardHeight:S,gameMap:_}=u;let{playerTank:f,explosions:p,muzzleFlashes:C,score:b,lives:G,enemiesDestroyed:h}=u,T=u.enemyTanks,N=[...u.bullets];const O=[],M=[f,...T];if(u[s(368,t)]&&f.isAlive&&(f=moveTank(f,u[s(475,W)],TANK_1990_GAME_CONFIG[s(386,"JQfV")],_,M,m,x,S),M[0]=f),f[s(311,"nd&3")]){const e=a[s(439,"0r)*")](fireBullet,f,l);if(e){const o=s(489,"56sk")[s(404,"i)$G")]("|");let t=0;for(;;){switch(o[t++]){case"0":N[s(306,"#Lqi")](e);continue;case"1":M[0]=f;continue;case"2":f={...f,lastFireTime:l};continue;case"3":O[s(364,"^Y84")](createMuzzleFlash(f,m,l));continue;case"4":a.ZVQac(playSound,GAME_SOUNDS[s(347,i)].FIRE,n[s(366,"^Y84")]);continue}break}}}T=T[s(515,"8C@D")](e=>{const o=s;if(!e[o(330,"GiWF")])return e;const n=a[o(420,"EH9!")](moveTank,e,e.direction,k[o(314,r)],_,M,m,x,S),t=n.x===e.x&&a.ZfRaF(n.y,e.y),W=getEnemyAIDirection(e,f,_,m,M,x,S,k[o(419,"dGxN")],t),i=moveTank(e,W[o(430,"@VS7")],k[o(321,"@VS7")],_,M,m,x,S);if(W[o(507,"JQfV")])if(a[o(298,"jEwh")]!==o(500,"e[Q8")){const e={_0x2a5674:389,_0x3ac87c:"Clkz"};RMOTZr[o(463,"@VS7")](_0x49c7b5,n=>{n[o(e._0x2a5674,e._0x3ac87c)]=!1})}else i.lastDirectionChangeTime=l;if(shouldEnemyFire(i,f)){const e=a[o(410,"u1kj")](fireBullet,i,l);e&&(N[o(433,r)](e),O[o(327,"@LuN")](createMuzzleFlash(i,m,l)),i[o(302,"P@5h")]=l)}return i});let E=_,R=!1;const F=[];N=N[s(397,"Xblt")](e=>updateBullet(e));const y=a.wRFah(checkBulletToBulletCollisions,N);N=y[s(297,"WwUt")],y[s(310,"jEwh")].forEach(e=>{const o=s;F[o(340,"0Kt1")](a[o(496,"EH9!")](createExplosion,e.x,e.y,l))}),N=N[s(450,i)](e=>{const o=s,t=a.lubei(checkBulletCollision,e,E,[f,...T],m,x,S);return!t[o(425,"ruq*")]||(t.hitTile&&(E=damageTile(E,t.hitTile.x,t[o(424,"8C@D")].y),F[o(467,"8C@D")](a[o(417,"b9!M")](createExplosion,t[o(436,"z7X8")].x*m+m/2,t[o(342,"c&4B")].y*m+m/2,l))),t[o(339,"nYfi")]&&(R=!0,F.push(createExplosion(e.x,e.y,l))),t[o(484,"z7X8")]&&(F.push(createExplosion(t[o(374,"c&4B")].x,t[o(332,"b9!M")].y,l)),t.hitTank[o(351,"0Kt1")]?(G-=1,playHaptic(HapticType[o(508,"Clkz")],n[o(455,"hTeH")]),f=G>0?a.YOmXX(createPlayerTank,m):{...f,isAlive:!1}):(T=T[o(328,"^Y84")](e=>e.id===t[o(484,"z7X8")].id?{...e,isAlive:!1}:e),b+=TANK_1990_GAME_CONFIG[o(409,"@VS7")],h+=1,a[o(413,"oXD3")](playSound,GAME_SOUNDS[o(305,"b9!M")][o(390,"C99z")],n.enableSounds),playHaptic(HapticType.SUCCESS,n[o(511,"C2yJ")]))),!1)}),T=T[s(459,"EH9!")](e=>e.isAlive),p=[...p,...F].filter(e=>!isExplosionFinished(e,l)),C=[...C,...O][s(459,d)](e=>!isMuzzleFlashFinished(e,l));let K=!1,q=!1;const Q=a[s(403,"v&Vd")](o).enemiesRemaining;R||a.HueAY(G,0)?(K=!0,q=!1,a[s(501,"bNfV")](playSound,GAME_SOUNDS[s(384,"ruq*")][s(354,"oXD3")],n[s(446,"C2yJ")]),a[s(411,t)](playHaptic,HapticType.HEAVY,n[s(494,"nI2A")])):Q<=0&&0===T[s(359,"e[Q8")]&&(K=!0,q=!0,b+=TANK_1990_GAME_CONFIG[s(462,"KI(r")],playSound(GAME_SOUNDS[s(399,"jjFj")][s(422,"jEwh")],n[s(338,"EH9!")]),playHaptic(HapticType[s(509,W)],n[s(369,"pFa2")]));const I={};I.playerTank=f,I.enemyTanks=T,I[s(333,"hTeH")]=N,I[s(479,"@VS7")]=E,I[s(326,"nd&3")]=p,I[s(441,"7jM&")]=C,I[s(308,"#Lqi")]=b,I[s(428,"u1kj")]=G,I[s(373,"c&4B")]=h,I[s(485,"c&4B")]=K,I[s(440,"Ws4A")]=q,I.gameVersion=u[s(304,"i)$G")]+1;const V=I;E!==_&&(V.mapVersion=u.mapVersion+1),(p[s(325,"GDdT")]>0||C.length>0||u[s(429,"Clkz")][s(353,d)]>0||u[s(349,"JQfV")][s(325,"GDdT")]>0)&&(a[s(392,"nYfi")](s(350,"Ws4A"),a.lcJLU)?V[s(393,"c&4B")]=u[s(431,"Xblt")]+1:(_0xb1ff61=!0,_0x56a211=!1,a[s(448,"#Lqi")](_0x586ffa,_0x286270.TANK_1990[s(323,"b9!M")],_0x56e196.enableSounds),a[s(379,"dGxN")](_0x445dc8,_0x173d81[s(329,"!ZZj")],_0x3d8e25[s(426,"0r)*")]))),K&&(V[s(301,"i)$G")]=!1),a[s(395,"z7X8")](e,V)}}))));export const useIsPlaying=()=>({QGNQb:function(e,o){return e(o)}}[_0xbdb75e(296,"@LuN")](useTank1990Store,_temp));function _0x5204(){const e=["W6lcL8k+yCocW7RdHmkB","Cmkju2DkW5nBbG","BJZdT17dI2ddNJigAq","WPVdU310kW","W5FcOSoKW60kEh3dL8kRW5BcQCoEpvBcR1a","BCopa0RcSa","nSk3W73cKSoTkMS","W4XUW77cGCkJWRrzW5pcGaddLSk5dW","W5xdUmkUW6ZcQHv9DmoxW65ko8o6","W5pdO8k9W7ZcOX5buCooW6Hgo8o9W4lcKea","W50SxCoaiGH5","DXFdKK1yCq","W6HbW4C","h8k/ch18krddIK8","k3hdNLbV","qaRdHMq0EYlcSSkpd8kmnmkNmCoIya","CxhdPeSL","W4VcKSomsCoKgdKnlq","ECoRgHxcIW","WO7dJGfTW5xcT2ZcMtW","iNr8f8ktWOpcNmoUDv7dPHe","W4JcKmopW4KO","WOddNdXKW6lcQ3FcHdinEa","tCk7w0vNWOSmwmoK","W4W8qSk0","W4NcKIBcLGu","W48QxSkUWRe","WPBcNSonW6GHBvO","Du3dJe8VW7SaFZNdJKSrWQPAW4G","BSoZAXRcHcFcNW","CCoNmCo5xa","WQtdM2fEmSoKB8o7WQq7WQdcTCkvWQOBW5G","WPVdRLBdImoQWOiLW6ldNMW","ASorWPdcMcPcwq","W6TwBmogCa","rd/cN2CJ","WQNcNbhcScydEW","iSkWW7FcLCo3mx3cOee/mq","umolub/cHq","bMZcN2nUgJL3lN4","W65DB8ouza","xSk7weTNW7vJjmkg","WOdcQZpcM8oY","W5m8x8olmXq","ySo4wHRcGIlcK8oKs2C","cKpdO2K","AI7dGa","iYOmrcu","W7xcUsNcMceIuG","WR3dHx/dQComWOiCW53dVG","CCktyvPzW5rE","W6bnDCoDBCkoWRe","aGe4zqq","nSkvWPGiWRBdG8osnJ8","W55UpSkqWP4","W4pcQ8oXCmoo","C8o9lSoqWPxcTmkdW6tcSCkxW6ri","AmoPbGlcQN7dMCk/W6L9W5KBW5q","W7pcN1vS","W4lcQSkXxmo5W5ldPSkJW6ldR8kGW517","WQNdNhbNmSoTEq","sSo4rrtcLq","W67cISkDzCojW4FdI8ksW4xdLq","W4dcJSo9v8oHktuklCo5da","nmoxWR/cRXjYxSogg8kZ","W5FcQ2HpbCoxWRWzWQC","CGhdUKnECmk0xG","W4NcV8oXW6ikEw7dI8kUW4tcTCoEgG","uCogBCkGWRq","W6RcMxzOo8kFW6bs","WRhdHCovW4JcPa","ESo2iCovWO3cUq","mCknfvrchY/dOxO","WQFcNbBcPSo3W7BcUSo/rmoBFI/cIq","omocWP7cQXXJySoMg8kZwGpdT1a","kxWhW5PQ","WRldKLO2jSoxWRvCWQ4qWRLIWOldR8kaAJrzWQyVA8oNWRBcRtu+WOtdRSkbwCkFxmk8W6e+EmkFWP3cUb7cUCoBsSotWRtcJCoVq8krpmoDfCktW5OOkmkrfq","W55UjSksWOBcHa","W5hcGSoZv8oG","W67cJsFcJcq","W7xcUtJcMcKTxSoflq","F1hdT0OO","DZRdG1C","WOZdHmoKW6hcLCo+W5HLWPBdMG","yIhdKv3dIMddGISwDqLb","bgpcL2TbldTHiNui","ESkpz3XDW5rbjCk9oSo8WRPjs052","WOVcVd7cKmosW5lcVSobEmoMqqNcQq","fmkJown5aHZdHuZdMW","qb3dUxVdUvldMaa3uW","WOnfWOXlWPZdUe5XWRFdPmoFWOrIE8kE","WQtdM2fEmSoKB8oTWQqLWRxcRSkuWROqW5S","WQNdNhbNoSoVDW","W5xcJmoSDCoI","WRytW7tcSmkgWPHcW4u","pXKSyGG","vKZdJmk9yG","pSkrWRJdKty","nfhdSwjm","CxxdUmk9vq","hmkJWOqOWOJdQCoYaH0","WQpdMMvbp8otECoiWQuV","mCkJW7dcMSo3sahdKdy","WPRdHmoQW7FcGG","W7tcHSokW4eJtNFdTmkFW7lcMmo/","WRiPwmohDCooBrZcV8oLwh7dMq","emk+WRePWOddTCoOpH/cTmo7W7qeyfWL","qCoUawNcG0uuDv0","WPSzCCoPs8oKCG","W7uhEmkiWP1QqJujWPhdQ8kWjG","ECokgalcVW","WQtdK2jwomo1B8o/WQqKWRlcTCkuWQ0","g8k1WRJdJtLysej9WRhcOG","lu0UW4LN","v8otWOZdQCkEsG7cSh4Eh3Wf","W6BcHCki","W6vzDmourCkBWRi","iCkrWPOpWRBcOCkIvuO","ubRdH2K4ytG","W5yQDSonkHLfW77dLmoQ","W4VcKSoBrmoObb8vl8oJ","E1BdQSkWsq","WPtdJt1OW4a","CmkjqMDw","wXZdVgWZ","WPpdTuNdN8o/WRqtW6VdMNVcPmkGW6K","W5xdUmkQW6pcRXvguCocW6LxkSoMW5lcMKO","m03cS0bdgHzcdKG5WRP0a8k7W78","W7DCBqpcQa","xSkaFNTZ","WRelwSouzmkxWPv+","lmkAcxb+","pSo8lCkoFa7cIs10W7C","dMpcILHYoZP7jhq","Dh4qW7T2tqjeW7jbW5zz","CmkkDhDz","W4VdIXT6zGfKWQddT8ofvSo+Aa","gCk6WRddHrzUsLrXWRO","ESo4imoLWRa","W6/cKsxcSYm","qwVdRG","BCoPgalcO3RdMG","W61jW4pcGCkdWPLW","dCklW4O","WP/cK00Hp1yFWOtdPSoWDmofvW","W6hcRG3cSa3dPCoEW77dHtjnqW4UEW","W4fJsGFcUa","tCoLiwNcJu8uDfqu","b2VcIgT0psb9jq","W67cGSkEBCotW6FdMCkQW4VdLmkfW7fhmW","z8oUq8ooW7NdJ396W5TTW4D3FhtcTCoy","WO7dTuddJq","cmkdW47cH8onc0VcGgKz","qmkgWQ0aWOFdH8ox","mNyCW7XMymoM","fLpdPMrH","BmoAk1/cKG","WQdcQ30Ima","DCo4q8knWRC","W4/cLmoMx8oPbbypk8oIemo5W5S","F8o+zSkwWRWwWRjyFSkIqdJdKSkmfJ8","W7vzaCkXWQ3cPa9SWRzuW7K","FbpdKu9HEmkQ","FSoKDCkwWR0VWQ94y8k4","W5xdUmkUW6ZcQHvMESosW7rhkW","E8oQECkbWO8DWRrVFSk/sW","W74mxmkLWO0","lwb9eCkWWOtcMSopsexdRHDyW59tEa","W6xcG0PWp8ku","W4y4u8kVWO4","WPP/vdtcNM3dMa","W4hcSSo7W7qjB0hdImkHW4q","W7tcH1zupq","W6DwEmotzmkFWOPwW57cKmkeWPRdQa","qmosyZlcSGBcS8opCvW","WQtdUb1nW6VcNuZcRr4","e0xdGg1SW63dSK7cTq","Cmo6i8ogWPZcOW","sGldIxVdIW","W5nha1jxtahdMSo3WPW7W44","WQ7dJ3RdQ8ohWOikW5FdVLRcK8kjW5/cP15F","aNhcNf5U","W5W8xCoafbvWW60","DHpdHg9cFmk3umopW6S","gSkKAd3dMW5lFwi0W4GZha","W7vvW4tcVq","W4FcJ8o5smo8nteniCoI","g8oSWPFcQrm","WR3dLSoppSkbWQVdGCkwW7VdImkVW4a","ychcQfSX","ECkMFmofkutcNcbZW7tdM8oe","tCo7n2dcGuGotv8vW781kSkj","fSkLWQy2WOZdVSoVkbpcQ8o/W74Eyf0S","bSkxW4ZcO8onf0ZcRw8fag8LctZdUa","pCoGimkEBq","vWhdJMGKqsRcSSkdpG","W6BcJebHoCksW7z2W7iEW7S8WPhcSa","bgpcL2TAkdK","WOFcOrJcK8otW5lcUCowBCoG","ohajW5PRw8oQW6nSDW","W5jQW7xcVmk+","W4ZcUqRcNCkQW6nJW6hdO1VcImkQW4m","mNyCW7XUySoO","WQJdHKnsnSoKu8oFWQqK","WRqwWOddRmoFW4CMW4NcRqJdI8kKea","W4r5EGVcUvhdVMK","W4NcQ8o7W44dBLVdJSkGW5K","W4ZdLmk2W6tdGSoWWR14W4W","W7pcGtukBSk3lmoXWRq+WRdcMSk9","qCoUf2ZcKfutFa","W4ddM8kKW4JcSa","fmk5nh14jaO","WOnfWOHeWPNdUhvaWQldOSo6WOjN","dGeOFWxcO8oQomkpWOW","F8oJlSolWPG","WRpdTLJdR1tcUmoSW4ldIsHiuq","W54MumkUWRbJAWmIWRddIq","W67cNmkizmoFW6ddG8ktW4ddLq","W4jgi8kZWOq","ssRdUK55","W6ZcHCkvBCo9W7ldMG"];return(_0x5204=function(){return e})()}export const useIsGameOver=()=>useTank1990Store(_temp2);export const useIsWin=()=>useTank1990Store(_temp3);export const useScore=()=>useTank1990Store(_temp4);function _0x94ed(e,o){e-=295;const n=_0x5204();let t=n[e];if(void 0===_0x94ed.iURlVq){const e=function(e,o){let n,t,W=[],i=0,d="";for(e=function(e){let o="",n="";for(let n,t,W=0,i=0;t=e.charAt(i++);~t&&(n=W%4?64*n+t:t,W++%4)?o+=String.fromCharCode(255&n>>(-2*W&6)):0)t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(t);for(let e=0,t=o.length;e<t;e++)n+="%"+("00"+o.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(n)}(e),t=0;t<256;t++)W[t]=t;for(t=0;t<256;t++)i=(i+W[t]+o.charCodeAt(t%o.length))%256,n=W[t],W[t]=W[i],W[i]=n;t=0,i=0;for(let o=0;o<e.length;o++)t=(t+1)%256,i=(i+W[t])%256,n=W[t],W[t]=W[i],W[i]=n,d+=String.fromCharCode(e.charCodeAt(o)^W[(W[t]+W[i])%256]);return d};_0x94ed.xvExSp=e,_0x94ed.ErOefC={},_0x94ed.iURlVq=!0}const W=n[0];_0x94ed.OfLsdC!==W&&(_0x94ed.ErOefC={},_0x94ed.OfLsdC=W);const i=_0x94ed.ErOefC[e];return void 0===i?(void 0===_0x94ed.bNcddL&&(_0x94ed.bNcddL=!0),t=_0x94ed.xvExSp(t,o),_0x94ed.ErOefC[e]=t):t=i,t}export const useLives=()=>useTank1990Store(_temp5);export const useLevel=()=>useTank1990Store(_temp6);export const useEnemiesRemaining=()=>useTank1990Store(_temp7);export const useBoardReady=()=>useTank1990Store(_temp8);export const useGameVersion=()=>({zqbsZ:function(e,o){return e(o)}}[_0xbdb75e(451,"#Lqi")](useTank1990Store,_temp9));export const useMapVersion=()=>useTank1990Store(_temp0);export const useEffectsVersion=()=>useTank1990Store(_temp1);function _temp(e){return e[_0xbdb75e(382,"jjFj")]}function _temp2(e){return e[_0xbdb75e(402,"7jM&")]}function _temp3(e){return e.isWin}function _temp4(e){return e[_0xbdb75e(360,"7jM&")]}function _temp5(e){return e[_0xbdb75e(317,"mH^e")]}function _temp6(e){return e[_0xbdb75e(437,"@LuN")]}function _temp7(e){return e.enemiesRemaining}function _temp8(e){return e.boardReady}function _temp9(e){return e[_0xbdb75e(447,"Ws4A")]}function _temp0(e){return e[_0xbdb75e(415,"@VS7")]}function _temp1(e){return e[_0xbdb75e(473,"Clkz")]}
@@ -1 +0,0 @@
1
- "use strict";const _0x5e0c06=_0x4c2e;!function(){const e=_0x4c2e,t=_0x4444();for(;;)try{if(764509==-parseInt(e(172,"H^jQ"))/1+parseInt(e(249,"@^3F"))/2+parseInt(e(166,"xoc$"))/3*(parseInt(e(236,"58A&"))/4)+-parseInt(e(262,"N]CK"))/5*(-parseInt(e(241,"gjIr"))/6)+-parseInt(e(240,"L6CB"))/7*(parseInt(e(196,"gBgV"))/8)+-parseInt(e(258,"%L7i"))/9*(parseInt(e(205,"eWq$"))/10)+parseInt(e(217,"0L%%"))/11)break;t.push(t.shift())}catch(e){t.push(t.shift())}}();import _0x413453,{useCallback,useRef}from"react";import{View,StyleSheet,TouchableOpacity,Text}from"react-native";import{useTank1990Store,useIsPlaying}from"../Tank1990Store.js";import{TANK_1990_COLORS}from"../Tank1990Constants.js";import{jsx as _0x444f89,jsxs as _0x27d1aa}from"react/jsx-runtime";export const Controls=_0x413453[_0x5e0c06(151,"@^3F")](()=>{const e="CE9$",t="TAf(",W=_0x5e0c06,o={zKROc:function(e,t){return e!==t},ookGD:W(263,"N]CK"),qrZWr:"right",IqqwP:function(e,t,W){return e(t,W)},qBiTm:function(e,t,W){return e(t,W)},IZJzn:function(e,t,W){return e(t,W)},FTYje:W(238,"Mu7h")},x=useIsPlaying(),s=useRef(x);s[W(244,"@^3F")]=x;const _=useCallback(()=>{const e=W;s[e(155,"3na5")]&&useTank1990Store[e(250,"NXtQ")]().setDirection("up")},[]),n=useCallback(()=>{const e=W;s[e(246,"o&Ci")]&&useTank1990Store[e(161,"rUI#")]().setDirection(e(202,"7^gz"))},[]),d=useCallback(()=>{const e=W;if(o[e(208,"M7Zb")]("xBDBH",e(230,"7^gz"))){if(!_0x10b094.current)return;_0x308543[e(188,"1tGk")]()[e(195,t)](e(215,t))}else{if(!s.current)return;useTank1990Store[e(170,"TAf(")]()[e(184,"lYm4")](o[e(192,"H^jQ")])}},[]),a=o[W(194,"o&Ci")](useCallback,()=>{const e=W;s[e(248,"6eBM")]&&useTank1990Store[e(259,"7^gz")]()[e(183,"Wxv%")](o[e(266,"GY2*")])},[]),r=o.IqqwP(useCallback,()=>{const e=W;useTank1990Store[e(171,"ObVn")]()[e(257,"H^jQ")](null)},[]),l=useCallback(()=>{const e=W;s[e(242,"xoc$")]&&useTank1990Store.getState()[e(216,"v9D9")](!0)},[]),i=useCallback(()=>{const e=W;useTank1990Store.getState()[e(255,"M7Zb")](!1)},[]);return o[W(177,"LGNf")](_0x27d1aa,View,{style:styles[W(247,"L6CB")],children:[_0x27d1aa(View,{style:styles[W(157,"lYm4")],children:[o[W(180,"0L%%")](_0x27d1aa,View,{style:styles[W(201,"@UFq")],children:[o.qBiTm(_0x444f89,View,{style:styles[W(251,"zY0q")]}),_0x444f89(TouchableOpacity,{style:styles[W(200,e)],onPressIn:_,onPressOut:r,activeOpacity:.7,children:_0x444f89(Text,{style:styles[W(165,"@UFq")],children:"\u25b2"})}),o[W(264,")G0P")](_0x444f89,View,{style:styles.dpadSpacer})]}),_0x27d1aa(View,{style:styles.dpadRow,children:[_0x444f89(TouchableOpacity,{style:styles[W(181,"Wxv%")],onPressIn:d,onPressOut:r,activeOpacity:.7,children:_0x444f89(Text,{style:styles[W(226,"jNPw")],children:"\u25c0"})}),o[W(231,"@UFq")](_0x444f89,View,{style:styles[W(261,"rUI#")]}),o[W(221,"Oa*q")](_0x444f89,TouchableOpacity,{style:styles.dpadButton,onPressIn:a,onPressOut:r,activeOpacity:.7,children:_0x444f89(Text,{style:styles[W(179,e)],children:"\u25b6"})})]}),o[W(220,"6eBM")](_0x27d1aa,View,{style:styles[W(252,"LGNf")],children:[_0x444f89(View,{style:styles.dpadSpacer}),_0x444f89(TouchableOpacity,{style:styles[W(228,"1tGk")],onPressIn:n,onPressOut:r,activeOpacity:.7,children:_0x444f89(Text,{style:styles[W(197,"0w3D")],children:"\u25bc"})}),_0x444f89(View,{style:styles[W(219,"6eBM")]})]})]}),_0x444f89(TouchableOpacity,{style:styles[W(168,"L%N@")],onPressIn:l,onPressOut:i,activeOpacity:.7,children:_0x444f89(Text,{style:styles[W(154,"TAf(")],children:o.FTYje})})]})});const BUTTON_SIZE=50,_0x2ee634={};function _0x4444(){const e=["iaycy8o5qeJcGCkOda","dsWPFCoe","W4nOeWZdOW","B39GWRpcSCkl","WOnnWPq","W4TJqsmsWRHotmoxqa","WPaQk8o+WPftlmkn","BSoEW5eSWQ7cT3LM","W5ddOXiQfMq","W5pdNmkiimoTB8kIW5y8WRq","WQzztCkrW77dHa","W5jnBay0","W5ZcP2mUW5m","e1fElSkQW6rYWRbNvmoEW48G","WOtcP8kOWPGdWQRdQq","cc55b8oSmYdcJXLpW58jW6/dGq","W7Kvg3pcOgX9WRzLqwm","ltJdV8oQW6xdMmkwbCksWRe6xq","vKddQmkEW4eQWO8DWOtcOxZcK2O","ECkzWOGh","FNv5","W6C2B1LtWQeKm8oVWRP+","mCo9wmoPCdxdV8kXWPpdR8olsqi","W7Gpg2xcOhbE","DCkuW5NdMCkpASoXd8oZ","WQ1jvSkeW7pdNSkm","WRzoW4hdG8kNweSBsCk4","WQPLWR/dSeDtW5C","WRnGmH4kWPOhjSo2","jWmrDCopxL0","W7WlemogWQ/cHSoaW6/cV8osvSkrkW","t8kGW4fQkmooCeC","ms3dPbOtW7pdHSkRWQBdQq","xw4UvSkmBg4","W7tdO8kNemo9vCkAW70rWPvlW6pdICkj","fSozddzNW7q","WQ3dQYVdOmoBW5RdICkqya","D8khW7SjmIJcSmoybJe","WRayWPFdKSklWPRcMmkUWQWOceq","f8oBW6zufSk5Ca","W41QxbCiWPbota","WQP1WQpdTKDp","gCoFdCosW5WFgu3cIxy","jCktxCoIW4lcQCo1","Fmk8xSo1","W6WIW53dPvS","W7SmW5hdIxjTWPysjCo3r8oDhG","WQi3h8oDWPe","W5bBg8oZzqC","xw4UvSknC3JdNaXK","W5RcJg4oW5y","WQnzsCkz","WR1UlG0cWP0","jXmnC8opqG","DCkEW6GijdJcVmoy","W4JcM8kNcmo3zSox","ECkcW6KzgtVcVCoVbJeyzcmn","W5FdTH06","WOnmeZGUWQW9bSoCWRy","jWqgzSoEvq","qSkWW4znnCojFwefESktb8kUqa","gSokgmoLW6SBa1W","r1/dU8kzW4f1WROrWPtcONe","W4JcRGajWRVdM8oKBdvDW68RWRZdRG","ymkqkrlcUmk/WPddK8oUW5y","W4NcLwSEW6OZtIi","WQPiwulcI2PSWOzf","W7pdVmkWW6PMWQihdSoiha","WRNdUSk7k8oMW6jziCkxkq","D8kEW6KDhdZcVCoIcdij","DmksW64+bdZcSmoj","A396WPtcOmkyW5S9","W7jnW5VcPmoxW5hdJCkHWR8ac2pcGG","DSkWsSoKW4ZcV8oNvW","W4BcQXizWOBdMmoLwW","CbtcI8k3WQqSm8oYzxu","WQKiWPddOSklWO7cHmkoWRCVe0/cUSk/","Cg8+rCko","gCoFdCos","rHehEmolWRG6WQG","W4hdSCkxW6Pz","W5Xoe8oWtWBcGfFdNHS","WRnQmH4oWOe","W4TBbSoqzahcKuddHrXIpG","W4ddOWGAgMrtvNjtz0m","WQXiW6rFW6bc","WPXdWPhcHCk9dq","WRnGmauz","W5ddICkDf8oBE8kIW4C","WRjGlG4oWOeQlmoOWO1E","oXxdT2iB","WQT/WR/dPKDpW7hcJmoohWVdHq","WQWsWOJdKCkM","lXpdVwisvSoHW7fe","WObHWRZdTxi","ymksW64Pgs/cOCophtydBW","WPuUfqFdImoFc8o9gG","lCkPEtJcOSo0W4xdTa","WQ9/WQpdTNfuW5NcIa","zmkEW74zga","rHehEmoDWQG2WQHVEW","W4NcLwSEW6W5qq","W45GxYO","iHKnC8o5wvpcHW","W4yBWRVcGmkKW6m","mmomDKddPmogW53cHSoZW7ZdN8k+W53dVG","lZtdV8oJW6FdK8oEjCkwWQO9tt8","pb3dT3iAuCoOW5XzWRlcO8k9DWbIjmkH","WQtdHq3dQCor","tCoTW7nCmq","ymkxqmkaWQzxW4T4W5b7WR1zW67cUq","BmobW548WQ3cT2H1dCo2","sSkQW4DDoCoDvKmoFCkseq","WQ1zsSkcW7pdGG","WQzEW5tdKubPW6m8W5PQW5C","yCkEW70fba","uf7dO1zOa8k/W7KT","WOFcGSopWOScW5TYpCoVcmk5WQpcOG","lCkPEtJcTCo0W5pdTg11"];return(_0x4444=function(){return e})()}_0x2ee634.flexDirection=_0x5e0c06(223,"dy8U"),_0x2ee634[_0x5e0c06(160,"NXtQ")]=_0x5e0c06(237,"7B*G"),_0x2ee634[_0x5e0c06(224,"7^gz")]=_0x5e0c06(182,"L6CB"),_0x2ee634[_0x5e0c06(207,"f@(t")]=20,_0x2ee634.paddingVertical=10;const _0x1a2a1a={};_0x1a2a1a[_0x5e0c06(190,"f@(t")]=158,_0x1a2a1a[_0x5e0c06(254,"PWiF")]=158;const _0x3d0280={};_0x3d0280[_0x5e0c06(265,")G0P")]=_0x5e0c06(239,"ObVn"),_0x3d0280[_0x5e0c06(176,"H^jQ")]=_0x5e0c06(153,"6eBM");const _0x4fb3f2={};_0x4fb3f2[_0x5e0c06(199,"TAf(")]=50,_0x4fb3f2.height=50,_0x4fb3f2.backgroundColor=TANK_1990_COLORS.CONTROL_BG,_0x4fb3f2[_0x5e0c06(212,"NXtQ")]=8,_0x4fb3f2[_0x5e0c06(163,"g!Yh")]=_0x5e0c06(213,"@^3F"),_0x4fb3f2[_0x5e0c06(164,"eWq$")]=_0x5e0c06(260,"o&Ci"),_0x4fb3f2[_0x5e0c06(162,"7B*G")]=1,_0x4fb3f2[_0x5e0c06(189,"L6CB")]=TANK_1990_COLORS[_0x5e0c06(253,"1tGk")],_0x4fb3f2[_0x5e0c06(152,"L6CB")]=2;const _0x1e7d3b={width:50};_0x1e7d3b[_0x5e0c06(185,"g3d[")]=50,_0x1e7d3b[_0x5e0c06(204,"dwAN")]=2;const _0x5bc53f={width:50};_0x5bc53f[_0x5e0c06(229,"@^3F")]=50,_0x5bc53f[_0x5e0c06(186,"dy8U")]=2;const _0x1cc5a7={};_0x1cc5a7[_0x5e0c06(198,"o&Ci")]=20,_0x1cc5a7[_0x5e0c06(209,"%L7i")]=TANK_1990_COLORS[_0x5e0c06(158,"L6CB")];const _0x30d8a8={};_0x30d8a8[_0x5e0c06(150,"@UFq")]=80,_0x30d8a8[_0x5e0c06(267,"Wxv%")]=80,_0x30d8a8.backgroundColor=TANK_1990_COLORS[_0x5e0c06(167,"0L%%")],_0x30d8a8[_0x5e0c06(191,"o&Ci")]=40,_0x30d8a8[_0x5e0c06(156,"TAf(")]=_0x5e0c06(227,"lYm4"),_0x30d8a8[_0x5e0c06(175,"0w4t")]=_0x5e0c06(222,"ObVn"),_0x30d8a8[_0x5e0c06(235,"xoc$")]=2,_0x30d8a8.borderColor=TANK_1990_COLORS[_0x5e0c06(210,"Ww%x")];const _0x2691d6={};function _0x4c2e(e,t){e-=149;const W=_0x4444();let o=W[e];if(void 0===_0x4c2e.KlsRxR){const e=function(e,t){let W,o,x=[],s=0,_="";for(e=function(e){let t="",W="";for(let W,o,x=0,s=0;o=e.charAt(s++);~o&&(W=x%4?64*W+o:o,x++%4)?t+=String.fromCharCode(255&W>>(-2*x&6)):0)o="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(o);for(let e=0,o=t.length;e<o;e++)W+="%"+("00"+t.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(W)}(e),o=0;o<256;o++)x[o]=o;for(o=0;o<256;o++)s=(s+x[o]+t.charCodeAt(o%t.length))%256,W=x[o],x[o]=x[s],x[s]=W;o=0,s=0;for(let t=0;t<e.length;t++)o=(o+1)%256,s=(s+x[o])%256,W=x[o],x[o]=x[s],x[s]=W,_+=String.fromCharCode(e.charCodeAt(t)^x[(x[o]+x[s])%256]);return _};_0x4c2e.ZxAUFf=e,_0x4c2e.cvnpnf={},_0x4c2e.KlsRxR=!0}const x=W[0];_0x4c2e.lZigSl!==x&&(_0x4c2e.cvnpnf={},_0x4c2e.lZigSl=x);const s=_0x4c2e.cvnpnf[e];return void 0===s?(void 0===_0x4c2e.vBRgBm&&(_0x4c2e.vBRgBm=!0),o=_0x4c2e.ZxAUFf(o,t),_0x4c2e.cvnpnf[e]=o):o=s,o}_0x2691d6[_0x5e0c06(203,"6eBM")]=14,_0x2691d6[_0x5e0c06(211,"jNPw")]="bold",_0x2691d6[_0x5e0c06(187,"L6CB")]=TANK_1990_COLORS[_0x5e0c06(245,"RwZ$")];const _0x47e8ca={};_0x47e8ca[_0x5e0c06(193,"f@(t")]=_0x2ee634,_0x47e8ca[_0x5e0c06(178,"rUI#")]=_0x1a2a1a,_0x47e8ca[_0x5e0c06(233,"y&CS")]=_0x3d0280,_0x47e8ca[_0x5e0c06(256,"TAf(")]=_0x4fb3f2,_0x47e8ca[_0x5e0c06(218,"0w3D")]=_0x1e7d3b,_0x47e8ca[_0x5e0c06(149,"LGNf")]=_0x5bc53f,_0x47e8ca[_0x5e0c06(174,"g!Yh")]=_0x1cc5a7,_0x47e8ca[_0x5e0c06(168,"L%N@")]=_0x30d8a8,_0x47e8ca[_0x5e0c06(173,"N]CK")]=_0x2691d6;const styles=StyleSheet[_0x5e0c06(159,"6eBM")](_0x47e8ca);Controls[_0x5e0c06(169,"TAf(")]=_0x5e0c06(225,"GY2*");
@@ -1 +0,0 @@
1
- "use strict";const _0x155429=_0x4f20;!function(){const e=_0x4f20,d=_0x3ed1();for(;;)try{if(852188==parseInt(e(369,"@2]5"))/1+-parseInt(e(349,"rp17"))/2+-parseInt(e(297,"Y3w5"))/3+-parseInt(e(546,"90wq"))/4+-parseInt(e(542,"d#]J"))/5*(parseInt(e(626,"Xp$f"))/6)+parseInt(e(440,"yL36"))/7*(parseInt(e(656,"a9zW"))/8)+parseInt(e(483,"(zme"))/9)break;d.push(d.shift())}catch(e){d.push(d.shift())}}();import _0x5a54cb,{useMemo}from"react";import{View,StyleSheet}from"react-native";import{Canvas,Rect,Circle,RoundedRect,LinearGradient,vec,Line}from"@shopify/react-native-skia";import{useTank1990Store,useBoardReady,useGameVersion,useMapVersion,useEffectsVersion}from"../Tank1990Store.js";import{TANK_1990_COLORS,TANK_1990_GAME_CONFIG}from"../Tank1990Constants.js";function _0x3ed1(){const e=["W40wgZPO","W6tcOYpdOa","sNpdU3ZcGGGCW74","W4ZcRse","amoNzW","W7dcHSojW7q5","WP1qW7K","Amo2C0hcKSoBWQa","EbmzW4hdVSk6W7zSW7/dHKNcMmkXW6Hj","e8k7FCkSaSk1zNFdHq","W4ddJmka","yxOAyI4","CSoLaa","WP3cR1LRv8o0wCobzKldUNBdK8keW6ZdLq","kCoupSokFq","lsuNFXJdNSowqSkfEHxdKLBcHa","WOv6WQijWPZdLG","WQihBehcKa","xCk+Dey","oN3dMNi","WR7cGmkIlw4S","WQBcKmk4iG","WQuhoq8","WP/cVuHI","W7BcUh15WQm","W67cLSonW58","WQ8CCSor","CHNdNmoVwCkosIqPW4ddNxVcVNC","wf7dRCoUWOOhWQDqwq","jZ1ioxZdICo6WPJcUe1BWPu","DaZdN8oTgSo+nG","b8oNzCokW7i","WRGCDuRcVq","W6yFFW","ftKD","gSkIW7ldVa","z3RdKmomWRaS","lSo0kmoEEgpdPty","gCk7Eq","cX/dVuBcS1hcU8oUfWBdTCky","dgJdNd7cN3CiW5C+aJ/dRd3dQWPynqddUwlcHq","AtuXW7BdNmkgW79mW4ldHg/cS8kdW5z4eIFdPSkBWQ0","a8kvWR8LW63cOmo+FCkvWQVcTZS","W5/cMmk1","WQBdPML6rG","BIK9W7JdJSkgW7LcW4VdNhFcTmkiW51UeJ4","pSkjWR3cL8oI","AKSZtW","wNhdJ2pcLG","WOlcRLqN","vCoNdSkMc8kuEa","WOPst0JcQW","W53dKCkVWQxcUq","zwCsBZhcLCofWPFcULHuWPNcKG","FmofWRv2WQy","Cu0YbulcHa","v1OYqG7cR8oZWPpcGxX9WQJcPCo5bcaN","BbVdKmoPbCoE","W652W4hdP38","x8o1W6WEW7bCWRZdRmkjmwldP3dcPSo+omkjWPCr","W63cICkq","rLW+raNcR8oXWPpcJ3G","reKNWR8LvG/cImoQDq","gmkdpXC","WQnrWQilWRq","W5mnwHC","lbRdPNBcMW","W7VcQIJcOG","ddzE","W5FdJmkfWRRcIW","W63cGSkq","wXilW50","WOizESkEWRi","WPZcUGGN","vLmWWQ4","wCoGW68CWRm","W51bBN5hW6GjCdFcSwq","eursW7y","W5RdJmkkWR7cLG","WQbzrwlcNSoZxSk5","AtuXW7BdNmkgW79mW4ldHg/cS8kdW5z8hdddTW","WQ3dN8kkWO1RWPRdLmksjs/dOuS","W7JcICkq","FCkOee7cVG","kZKQW5hdTq","cSk0W7xdTW","gb4rwG","arxdPKxcVLC","WRfGqh3cIq","nmktWP3cS8ot","W6XLea","W5JcUSoXW7yFW7JdNmkImsVdGW","a8kvWR8LW63cOmoNFCkx","sN3dRxFcSWSK","W6K9sLZdQG","W6GLwvhdVq","huryW6RdH8k/eq","hchcUdJdKfymW7G0W7RcSKG","W4eqxh/dHKVcHW","cX/dQ1VcLeZcNCo7hai","WPecv8kEWOC","pIRcGmkzW6fSWQnqEbuCWQe","eCoVE8oDW6tcIL7cTa","h8kvWPVcVSoM","WQRcHN5hjSkzomkHgclcJXlcOmoIWPtcUmk0WQOf","fduDW5tdI8o6","mSkUWPG","W4ata0ZcIG","xX4iW5a","lXeNW7BdRConWQVcOWjmdZNdUNHq","WPpcLSkIrG","W6RcVSomWPP1W5aFWRJcHmo4tmkoDW","rSkQl3lcHa","W6LVW6xdVNRdPqy","iJKQW7/dPG","v8olzeZcPa","t8kKy1FdQSkSa8ktB8kG","Da3cKW","WQhcKvtdTmk6","lhJdGdRcKwOcW70+","hqNdV0C","rxFdPge","cGOqqctdRq","WPhdQ1D0vq","nmoCsmo8W5lcUv7cSqJcNmk8sCorW745","rmoyAeCZW7JcPaSAWOxdMmkk","W5RcPaZcVKu","b8ojhCodCa","d8k+WP3cN8oc","WRmNFmkJWOW","W5dcUbSSkCorivbwW7TzaCoh","yHhdMSo3iSoEg2XWWOC","WOuHsgFcT8oFrmkJmq","WRfTW4FdMNCHWRBcN8oBF1GLWO0+uW","W691tLm","fSoop8oWDW","WOFcRvjTf8kY","W4qqqLxdLq","AmonbX4","ogtdGtC","CtmvW4ldSa","W4/cRSo0WQXu","z8kxcL7cVuybW7vnwmkBpCo0W7qjnSoFWR3dKIpcLJJcVG","WQNcRuHbeG","W6ZcMf9yWPOwceldMmkdWRS","otZdJNVcK3hcTSonpcVdMCk0WOVcH0a","W6tcQCoOWOzO","tmo+oZyjW4/cTmkNWOmC","WP1MWRuf","CeORWOi3","cWqoxtm","h3RdVXxcMG","W6ZcICovWRr0","W7xcOcNcONi","eCo9ja","WRDEAMFcGSoKxW","W43cISoRWRC","meHrW53dQW","lh95W5BdN8kpmSkyxGrSgq","E8ozWQjQ","d0pdUXVcRviIW5Wv","lSkVWRK0W6q","W7a+EN/dTxFcQY7dSwm","W77cLu1eWOaxh0hdK8kiWRu0u8kvW5pcNW","WPxcKfVdGSkK","WRy3qSk0WPiPW6pcRg1RkmkVW5e","oZ8NDW3dNSogrmkxzH4","WONcP0LphSkLba","DbhdUmoNcCothG","W5Ckxvi","tbuzW4BdPa","gJzbWP4","r8k3rCo3W47cKfNcJG","WRfwtM/dKSkXf8oNkmk/W4ldVr3dQCkbkG","WOBcR3RdTCky","WOVdQez5Dmkt","o8k5gCkgwG","ySoplCkIoW","WPq9swdcSa","DMCi","xa9jWPG","iSkOWPOjW5q","bSk+W6VdVGTi","WQRdQv5Xta","smowW4WxWPm","WR0bla","AmoRveVcGCo2WOG","df9oW7ZdUmk1","W6jUW43dSxG","hSoiECoRW7y","WPhcJ8kIaW","WOauzCkEWQWdW4tcNhLebCka","ACoZrg0cW5m","rSoKzCkNxG","g8kCdCkrBa","WRCmAmoEW7RdHG","t8k4kG","c15oW6hdTSkK","zx0iAq","W4RcLSo8WQTp","W4/dISkCWQ7cM2pdG8oznCk2WRC","WRe6v8kOWOuKW6/cU3bPmmkZW5BcNSkqbmkUWOu","WQubBfdcJ8ouECkbba","W5bJuhvG","WR1FWOC0WRZdQSoEvaLLmCoOCSo+zsVdOYpcQmoB","WQtcGSkPkY5QWOL5WRddMI1PAHS","EmkIamo/CxtdIsu","cX/dVuBcS1hcVSoMfXVdQa","vCkXaNlcSq","W7CZB2pdONRcSd/dPNlcPCkx","W6tdNrNcLmo/WQZdS8k1cq","sSodhSkwcW","kWq2W7BdS8onWQhcPrfqdd0","W77cQIZcQMGY","x3VdRxRcJW","WQ0Xbq4QWPT0atNcGL3dQgxcLa","WQyaFKO","wCo9W4GwWQajW7q","rmkNmhlcMMWXW5fgCmkWfa","WQlcL8kQkw0","WPP6WQizWPe","EmodW7W","ea0fvcq","cejyW6FdUW","E0C/g3NcMbNdUHvd","cJCrW5lcL8kGW5BdN2K1CudcKqaO","sCoTiCkOg8kf","amo6CmodW6q","AmkVeuZcVG","WRRcGmkTpG","DMCxBJC","WQFcT1pcG0u","WPC2BexcNa","W5BcTmooWOzF","hWigrIK","W6tcICo8WQHn","rN3dP2S","W6H5W43dTxVdPW","WRVcGNlcOG","W5pdUIpcUa","eSkyltqM","tCo9zhKV","zquXW4FdGW","W7uiidTiW6JdG8oOrCkIpgq","pgpdKZZcMvyN","qSoNjmkGaq","t8oWWQm","WRdcT8kuA35mCWT9ECk/W6u","W5hcMSo+WQS","F8ozWOzRWPO","WRVcG8kOzW","gCk8eSkbCWuT","WRxcS13dMmkG","W5hcNqtcNLmzocPc","eSk6fdWw","WPrAW7RdIKGFWORcSW","y8oXW4GUWPa","WQfxaq","WRWgBCowW6a","o8o/yq","WO3cQXy","uu8NWRiE","WQTurwNcKSo1","AmoLBgydW5hcLq","W5XPuNP+","gCkYW6BdRqS","WPpdUfX2","uSomoCkhhq","y8oDbmkdnSkLq2xdOvGUWP4","oNBdKd7dMIXEWQD8r27cQhJcUeK3","W4tdQItcG8ouWOhdJSkE","WPhdOLPWEa","WPdcL8kJqvL2","xMNdTmoaWOS","xmoOWRFdUHj4WP3dPu0","EKC3dvG","W6RcMSooW5i","BK52","m0VcISk8rmkatK5CWOxcGZBdNG","jSo8dSomCa","wKxdTCo+WRe","uCo9o8kN","E8oHeCkdkG","g8kcpHa7pW","c8kOWPRcRmoZ","WQJcHghcUfq","WQ8DqmowW5u","BhddLCoeWQO","pSksWPxcLSorFMy5tYD0uCkn","kN7dLIBcOxykW7y/aq","W619W5W","zr3cKW","WPhcISk2rKy","zmogdCkckSkUxN7dT0a4WPqEC8kE","FSokgXS","FLX2","d15pW7S","W57cRh91","sKRdN8o/WO4","WP3cT8kAlKG","gZGAW5/dM8oGWOBcHa","uCoABfmVW7xcRXWjWOxdJ8kBW4G","WR0HCmoqW6q","pSo8lSogfJdcS2zduq/dTW5yWP7cVCkZ","WPLgW43dGf4","wCkOq03dQW","FNJdHgdcTG","WQVcMhFcVLNdNmkzWO3cQmk9dwm","uCkPjta","vSoxEu84W7JcVrCm","W7esoYDzW7NdOSofuSkJpwFcHG","BmoSrKa","W6HOdXy","WQihFG8","gSo9smodW6JcKhm","W6tdNrhcG8oZWR/dUmk6hYi","sCoTWOjhWPhdMmofWPD/uCoi","vK/dSmoNWRC","WQ/cMhBcPa","t8kKy1FdU8kRfSkdB8k6","dSk8omkhEq","W5tdSSkLWRJcUa","CaVdJCoM","W4/cLSo/WRDt","WPdcL8kOqLC","WRqqumk0WOO","W63cHSozW44Y","hCkZWQ8","W5ddVZhcP8ooWRddImkuoajqEmoqjfOzsbldTx4iWQO","WRnex2y","xSoMW7WqWRmjW4FcPCoDAsO","WOblW7ZdTLCB","vCoKo8oI","pSkiWO/cKa","hSkXWR3cOCoGsuSOBbbiymkQ","lmkjW4VdMIHJWQhdONGfkXJdKmk1","yHhdMSo3jCozcG","r8kGCta","rCo3W6CyWRay","qWirW5ldV8kT","WP3cRKnGnG","rYtcIa","WQbEqghcIa","g8kclq0KdSkjW5FcTG","W5/cKmo8WQzHW64VWOG","W4VcTce","hdKbW5BdNmoMWORcHsS","uSkTCta","qSkGn07cGNGXW5e","qhFdOgNcJXa","WPFcLSkJxfDNCYTDwCkFW4u","xaFcLCoOW4G","DSo5mmkncG","W5FdUIlcOSofWPq","xsFcI8kI","W7bPW5FdUG","gqxdVeO","W6nZW5C","fmo1CYVdJYSXW6XNE8kqeW","uSkCnN7cNa","rSoFW6q6WPe","gX8BxIq","WOhdPqi","omk3W63dMcq","wt7cJmoN","W7DLvfXWW5K","g0hdSWJcVee4W5OzmXRdNa","W7eiise","W7NcMfHyWPCAbKZdNCkb","W6FcMYBcONm","WPxdGNzNEW","h8kAeSkgBW","a8o7ESoh","W4G/fc9Q","h8kpW6hdTHa","CCoJxMi","WOWqF8oC","WRZcGMVcUf3dGCkKWOdcUW","WPqNrghcSmoFvmkTlbmhWQVcTmo9WRGqW61yW605qcK","W4BdOh0","tSkKA0hdMG","W53cJI/cQ0W","WRxcISkNjxq","wgFdUMy","lmkyW43dLq","cCk6j8kyzWeWWQRdP8oaWP8","WPm7sg/cOSoFuSkJjqSFWR3cUmoJWROEW7K","yXhdKSoHaW","wCoGzCoEpfirWQ7dRSo1WQKm","WQ3dJ0T4uq","ruq6wadcOSoOWPdcG3LJWRlcSSoUesS4aq","EIeiW5BdRG","W4NcTce","WQZcQxtcHfi","psRcISktW6fHWQDtAsm7WQG","FxJdM8okW7bQW58SmwfQW6bbmgxdPa","lCksWPdcL8ox","W5VcRmoCW509","W5BcVmojW50i","W47dQJ3cVW","ihtdMZJcMMO","zCodWR9N","dd81W5RdH8o3WOC","WQpcO3j5oG","WOnkW73dSq","bSk6kYKB","W43cSwvXWQe3jw0","FCoChL4","BKKVb1G","WPiIsudcOG","cX/dQ1VcHuVcImoRhbG","W61Vsfv8","WQhcOSkcA21ABG15BW","g8kUWQ8QW78","W5RcRh5VWQaX","mCkYWOuo","xSo+De3cKW","ASowgWm6W6hcMmk9WQCJiq","q8oPoSk9fSkDvh0","WQfEshFcUmoUt8kJA8oI","WQ3cNxDgoSksm8k3bslcJW","sLhdVmoMWOehWR5lxbarWO8LtblcGmoPamkTyCo+","amk/WPJcNSoO","CweiCsNcKCooWPZcRvbF","W4L4Eh50"];return(_0x3ed1=function(){return e})()}import{jsx as _0xd30bed,jsxs as _0x2a2769}from"react/jsx-runtime";const SHRAPNEL_COUNT=6,_0x4ba8c1={length:6},SHRAPNEL_OFFSETS=Array[_0x155429(406,"L2OK")](_0x4ba8c1,(e,d)=>{const o=_0x155429,t={DWDbY:function(e,d){return e+d}};t[o(638,"bdYw")]=function(e,d){return e/d};const W=t,n=W[o(677,"m#Dx")](W[o(462,"a9zW")](d,6)*Math.PI*2,.3);return{cos:Math[o(447,"Y3w5")](n),sin:Math[o(697,"yL36")](n)}}),_0x7bdab6={};_0x7bdab6.bodyTop=TANK_1990_COLORS[_0x155429(413,"8JjK")],_0x7bdab6[_0x155429(305,"7n[j")]=TANK_1990_COLORS[_0x155429(431,"bhSA")],_0x7bdab6[_0x155429(384,"zuGT")]=TANK_1990_COLORS[_0x155429(469,"4xO#")],_0x7bdab6[_0x155429(678,"8JjK")]=TANK_1990_COLORS[_0x155429(658,"Y3w5")],_0x7bdab6[_0x155429(343,"njlJ")]=TANK_1990_COLORS[_0x155429(477,"uyCG")],_0x7bdab6.trackHL=TANK_1990_COLORS.PLAYER_TRACK_HIGHLIGHT,_0x7bdab6[_0x155429(682,"bhSA")]=TANK_1990_COLORS[_0x155429(602,"Dg%x")],_0x7bdab6[_0x155429(511,"u*Bq")]=TANK_1990_COLORS[_0x155429(472,"K&d[")],_0x7bdab6.barrel=TANK_1990_COLORS[_0x155429(569,"*Z[k")],_0x7bdab6[_0x155429(370,"yL36")]=TANK_1990_COLORS.PLAYER_BARREL_HIGHLIGHT;const PLAYER_COLORS=_0x7bdab6,_0x495619={};_0x495619.bodyTop=TANK_1990_COLORS[_0x155429(708,"13d4")],_0x495619[_0x155429(612,"%K0H")]=TANK_1990_COLORS[_0x155429(561,"6(vr")],_0x495619[_0x155429(367,"8JjK")]=TANK_1990_COLORS[_0x155429(313,"mzeB")],_0x495619[_0x155429(399,"90wq")]=TANK_1990_COLORS[_0x155429(654,"m#Dx")],_0x495619[_0x155429(704,"Y3w5")]=TANK_1990_COLORS.ENEMY_TRACK,_0x495619[_0x155429(298,"90wq")]=TANK_1990_COLORS[_0x155429(689,"@2]5")],_0x495619[_0x155429(465,"K2qu")]=TANK_1990_COLORS[_0x155429(393,"*Z[k")],_0x495619[_0x155429(618,"2o2J")]=TANK_1990_COLORS[_0x155429(372,"*6hj")],_0x495619.barrel=TANK_1990_COLORS.ENEMY_BARREL,_0x495619[_0x155429(695,"Uyzd")]=TANK_1990_COLORS.ENEMY_BARREL_HIGHLIGHT;const ENEMY_COLORS=_0x495619,EXPLOSION_STEPS=10,EXPLOSION_SMOKE_COLORS=[],EXPLOSION_OUTER_COLORS=[],EXPLOSION_MID_COLORS=[],EXPLOSION_INNER_COLORS=[],EXPLOSION_CORE_COLORS=[],EXPLOSION_SHRAPNEL_COLORS=[];for(let e=0;e<=10;e++){const d=e/10;EXPLOSION_SMOKE_COLORS[_0x155429(651,"Uyzd")](_0x155429(295,"90wq")+(.25*d)[_0x155429(318,"6(vr")](3)+")"),EXPLOSION_OUTER_COLORS[_0x155429(623,"@VAZ")](_0x155429(473,"V%@N")+(.4*d)[_0x155429(485,"njlJ")](3)+")"),EXPLOSION_MID_COLORS[_0x155429(534,"bdYw")](_0x155429(493,"LyGU")+(.7*d)[_0x155429(700,"J)3U")](3)+")"),EXPLOSION_INNER_COLORS[_0x155429(711,"zuGT")](_0x155429(706,"*6hj")+(.9*d).toFixed(3)+")"),EXPLOSION_CORE_COLORS[_0x155429(424,"%K0H")]("rgba(255,255,220,"+d[_0x155429(519,"a9zW")](3)+")"),EXPLOSION_SHRAPNEL_COLORS[_0x155429(342,"[^Z^")](_0x155429(537,"41Oa")+(.8*d).toFixed(3)+")")}const MUZZLE_OUTER_COLORS=[],MUZZLE_INNER_COLORS=[],MUZZLE_CORE_COLORS=[];for(let e=0;e<=10;e++){const d=e/10;MUZZLE_OUTER_COLORS[_0x155429(437,"uyCG")](_0x155429(663,"@2]5")+(.3*d)[_0x155429(436,"90wq")](3)+")"),MUZZLE_INNER_COLORS[_0x155429(714,"V%@N")](_0x155429(571,"7n[j")+(.8*d)[_0x155429(670,"LyGU")](3)+")"),MUZZLE_CORE_COLORS[_0x155429(402,"(zme")]("rgba(255,255,255,"+d[_0x155429(423,"KK5!")](3)+")")}const render3DTank=(e,d,o,t,W)=>{const n="2o2J",r="[^Z^",_="@2]5",x="fBTB",O="zuGT",i="u*Bq",S=_0x155429,u={ptAoG:function(e,d){return e-d},NBdfM:function(e,d){return e+d},yWKrF:function(e,d){return e-d},WqxBy:function(e,d,o,t){return e(d,o,t)},ACagg:function(e,d){return e*d},QvMkS:function(e,d){return e-d},LkIsE:function(e,d,o,t){return e(d,o,t)},mFpDw:function(e,d){return e-d},kKVYx:function(e,d){return e*d},jyCYb:function(e,d){return e/d},WkMJh:function(e,d){return e+d},bkBXO:function(e,d,o,t){return e(d,o,t)},VxEEl:function(e,d){return e+d},CGemH:function(e,d,o,t){return e(d,o,t)},YPILo:function(e,d){return e/d},jitNc:function(e,d){return e-d},MjRQH:S(560,n),NcFQH:function(e,d){return e+d},rcFmq:function(e,d){return e+d}},R=e.x,C=e.y,a=e.isPlayer?PLAYER_COLORS:ENEMY_COLORS,k=.22*d,f=d,s=f/3;W[S(624,"8JjK")](_0xd30bed(RoundedRect,{x:u.ptAoG(R,o)-1,y:C-o+2,width:u[S(332,"K&d[")](d,2),height:u[S(362,"uyCG")](d,1),r:3,color:S(441,"KK5!")},S(595,"d#]J")+e.id)),W[S(683,"#vfk")](_0xd30bed(RoundedRect,{x:u[S(554,"IUqv")](R,o),y:u[S(320,"G$FP")](C,o),width:k,height:f,r:2,color:a[S(587,"zuGT")]},S(600,"6(vr")+e.id)),W[S(672,"Gymw")](_0xd30bed(RoundedRect,{x:u[S(476,"Xp$f")](R,o),y:C-o,width:k,height:u[S(589,"G$FP")](f,2),r:2,color:a[S(710,"m#Dx")]},S(576,"Xp$f")+e.id));for(let d=0;d<3;d++)W[S(342,r)](u[S(620,"6(vr")](_0xd30bed,Rect,{x:u.NBdfM(R-o,1),y:u[S(657,"bdYw")](C-o,u[S(500,"m#Dx")](d,s))+.3*s,width:k-2,height:1,color:a[S(512,"41Oa")]},S(622,"^tnd")+e.id+"-"+d));const h=u[S(541,_)](R+o,k),L={};L.x=h,L.y=C-o,L.width=k,L[S(463,"IUqv")]=f,L.r=2,L.color=a[S(557,"41Oa")],W.push(u[S(671,"*6hj")](_0xd30bed,RoundedRect,L,S(581,"m#Dx")+e.id));const N={};N.x=h,N.y=C-o,N[S(467,"%K0H")]=k,N[S(713,"V%@N")]=f-2,N.r=2,N[S(588,"a9zW")]=a[S(487,"V%@N")],W[S(601,"Dg%x")](_0xd30bed(RoundedRect,N,"trf-"+e.id));for(let d=0;d<3;d++)W[S(651,"Uyzd")](_0xd30bed(Rect,{x:h+1,y:C-o+d*s+u[S(665,"rp17")](s,.3),width:u[S(457,"yL36")](k,2),height:1,color:a[S(454,"J)3U")]},S(333,"uyCG")+e.id+"-"+d));const m=u[S(479,"6(vr")](d,.56),K=.68*d,b=R-m/2,l=C-u[S(572,"Gymw")](K,2),G={};G.x=b,G.y=l,G[S(322,x)]=m,G[S(633,"(zme")]=K,G.r=3,G[S(498,"Y3w5")]=a[S(330,r)],W[S(624,"8JjK")](_0xd30bed(RoundedRect,G,S(464,O)+e.id)),W[S(549,"6(vr")](_0xd30bed(RoundedRect,{x:b,y:l,width:m,height:K-2,r:3,children:_0xd30bed(LinearGradient,{start:vec(b,l),end:vec(b,u[S(314,"Dg%x")](u[S(690,"Dg%x")](l,K),2)),colors:[a[S(361,"Uyzd")],a.bodyFace,a[S(687,"KK5!")]]})},S(525,"KK5!")+e.id)),W.push(_0xd30bed(Rect,{x:u[S(419,"41Oa")](b,2),y:l+1,width:m-4,height:2,color:a[S(604,"90wq")]},S(453,"IUqv")+e.id));const y=u.ACagg(d,.18);W[S(635,i)](u[S(432,"JoFr")](_0xd30bed,Circle,{cx:R,cy:u[S(692,"(zme")](C,1),r:y,color:a[S(575,"i3G3")]},S(385,"90wq")+e.id));const T={};T.cx=R,T.cy=C,T.r=y,T[S(418,"13d4")]=a[S(621,"(M&M")],W[S(534,"bdYw")](_0xd30bed(Circle,T,S(336,"LyGU")+e.id));const A={};A.cx=R-.3*y,A.cy=C-.3*y,A.r=.35*y,A[S(543,"K14@")]=a[S(364,"K2qu")],W[S(339,"mzeB")](u[S(445,"6(vr")](_0xd30bed,Circle,A,S(306,"a9zW")+e.id));const E=u[S(501,"%K0H")](d,.48),P=.13*d,q=u[S(396,"Dg%x")](P,.4);let w=R,I=C,M=P,Q=E,p=R,J=C,B=q,v=E;switch(e[S(387,"41Oa")]){case"up":w=u[S(368,"4xO#")](R,P/2),I=u[S(420,"%K0H")](C,E),M=P,Q=E,p=R-u[S(585,_)](q,2),J=C-E,B=q,v=E;break;case S(506,"i3G3"):w=R-P/2,I=C,M=P,Q=E,p=R-q/2,J=C,B=q,v=E;break;case S(516,"%K0H"):w=R-E,I=C-P/2,M=E,Q=P,p=R-E,J=u[S(698,"rp17")](C,q/2),B=E,v=q;break;case u[S(496,"Xp$f")]:w=R,I=C-P/2,M=E,Q=P,p=R,J=C-q/2,B=E,v=q}W[S(565,"bhSA")](u[S(394,"wZcD")](_0xd30bed,RoundedRect,{x:w,y:u[S(524,"njlJ")](I,1),width:M,height:Q,r:1,color:a[S(492,"K14@")]},S(458,n)+e.id));const g={};g.x=w,g.y=I,g[S(482,"Uyzd")]=M,g[S(607,"mzeB")]=Q,g.r=1,g.color=a[S(390,"13d4")],W[S(424,"%K0H")](_0xd30bed(RoundedRect,g,S(694,"wZcD")+e.id));const V={};if(V.x=p,V.y=J,V.width=B,V[S(617,"Uyzd")]=v,V[S(421,"wZcD")]=a[S(686,"6(vr")],W[S(331,")w8#")](u[S(509,"*Z[k")](_0xd30bed,Rect,V,S(712,"41Oa")+e.id)),t<e[S(596,"(M&M")]){const d=u[S(316,"Uyzd")](o,3),t={};t.cx=R,t.cy=C,t.r=d,t[S(648,O)]=TANK_1990_COLORS[S(634,"41Oa")],W[S(354,"13d4")](_0xd30bed(Circle,t,S(489,x)+e.id));const n={};n.cx=R,n.cy=C,n.r=d,n[S(421,"wZcD")]=TANK_1990_COLORS.SPAWN_SHIELD_EDGE,n.style=S(455,"K2qu"),n[S(598,"njlJ")]=1.5,W[S(407,"41Oa")](u[S(693,i)](_0xd30bed,Circle,n,S(358,"(zme")+e.id))}},StaticMapCanvas=_0x5a54cb[_0x155429(667,"(M&M")](()=>{const e=_0x155429,d={VloAG:function(e,d){return e*d},LStgR:function(e,d){return e<d},UfFEJ:function(e,d,o){return e(d,o)},FemRR:function(e,d){return e-d},QmMfu:function(e,d){return e===d},rfxjI:function(e,d,o,t){return e(d,o,t)},KAjfL:"base",ZUsWI:function(e,d){return e-d},rIFnd:function(e,d){return e<d},bRRAe:function(e,d){return e*d},GxJRB:function(e,d,o){return e(d,o)}},o=useMapVersion(),t=d.GxJRB(useMemo,()=>{const e=_0x4f20,o={ZiYLY:function(e,o){return d[_0x4f20(631,"d#]J")](e,o)},znaKv:function(e,d){return e-d},zLXCF:function(e,o){return d[_0x4f20(666,"rp17")](e,o)},cKBju:function(e,d){return e%d},wYucj:function(e,d){return e+d},qTcos:function(e,d){return e+d},IBFfG:function(e,d){return e+d},njeul:function(e,d){return e<=d},CODHX:function(e,o,t){return d[_0x4f20(593,"4xO#")](e,o,t)},KRQdN:function(e,d,o,t){return e(d,o,t)},IccFQ:function(e,o){return d.FemRR(e,o)},bHqiv:function(e,d){return e-d},sDqHn:function(e,d){return e*d},XoMzQ:function(e,o){return d.QmMfu(e,o)},XmSSH:function(e,o,t,W){return d[_0x4f20(608,"*6hj")](e,o,t,W)},Byqzk:function(e,d){return e+d},tcDcC:function(e,d){return e*d},rQlss:function(e,d){return e+d},BgAey:function(e,d){return e/d},RQjRL:function(e,d){return e+d},fPRgf:d[e(649,"wZcD")],UZLUi:function(e,d,o,t){return e(d,o,t)},rSqXq:function(e,o){return d.FemRR(e,o)},eDBhK:function(e,d){return e-d},jgBkN:function(e,o,t){return d.UfFEJ(e,o,t)},ZTmwg:function(e,d){return e+d},CioAf:function(e,d,o){return e(d,o)},EkFdZ:function(e,d){return e+d},ohORB:function(e,d){return e*d},EjiTM:function(e,d){return e-d},nixhF:function(e,d,o,t){return e(d,o,t)},nLgVK:function(o,t){return d[e(403,"7n[j")](o,t)},FesKm:function(e,d){return e-d}},t=useTank1990Store[e(523,"Gymw")](),{gameMap:W,cellSize:n,boardWidth:r,boardHeight:_}=t;if(!W)return null;const x=[],O={x:0,y:0};O[e(529,"[^Z^")]=r,O[e(606,"njlJ")]=_,O.color=TANK_1990_COLORS.BACKGROUND,x[e(416,"K&d[")](d[e(391,"bdYw")](_0xd30bed,Rect,O,"bg"));for(let o=1;d[e(639,"a9zW")](o,W[e(491,"K2qu")]);o++)x[e(291,"*6hj")](_0xd30bed(Rect,{x:d.bRRAe(o,n),y:0,width:1,height:_,color:TANK_1990_COLORS[e(428,"41Oa")]},e(375,"uyCG")+o));for(let d=1;d<W[e(355,"8JjK")];d++){const o={x:0};o.y=d*n,o[e(533,"d#]J")]=r,o[e(505,"@VAZ")]=1,o.color=TANK_1990_COLORS[e(478,"(M&M")],x[e(427,"fBTB")](_0xd30bed(Rect,o,e(461,"6(vr")+d))}return W[e(299,"yL36")][e(366,"uyCG")]((d,t)=>{const W="m#Dx",r="Xp$f",_="Gymw",O="mzeB",i="wZcD",S="zuGT",u="*Z[k",R="2o2J",C="4xO#",a="K14@",k="yL36",f=e;d[f(435,"*6hj")]((e,d)=>{const s=f,h=d*n,L=t*n,N=n;if(e[s(303,"d#]J")]===s(456,"@VAZ")){const n=e.health<=1,u=n?TANK_1990_COLORS[s(348,"mzeB")]:TANK_1990_COLORS.BRICK_FACE,R=n?TANK_1990_COLORS[s(646,W)]:TANK_1990_COLORS[s(603,"d#]J")],C=n?TANK_1990_COLORS[s(324,"Y3w5")]:TANK_1990_COLORS[s(360,"#vfk")],a=n?TANK_1990_COLORS[s(410,r)]:TANK_1990_COLORS[s(401,_)],k=n?TANK_1990_COLORS[s(309,O)]:TANK_1990_COLORS.BRICK_BOTTOM,f={};f.x=h,f.y=L,f.width=N,f[s(494,"6(vr")]=N,f[s(555,"@2]5")]=TANK_1990_COLORS[s(310,"#vfk")],x[s(291,"*6hj")](_0xd30bed(Rect,f,"bm-"+d+"-"+t));const m=1,K=3,b=(N-o[s(681,"#vfk")](m,o.znaKv(K,1)))/K;for(let e=0;o[s(522,")w8#")](e,K);e++){const W=1===o.cKBju(e,2),n=W?3:2,r=(N-m*(n-1))/n,_=W?.3*-r:0,O=o.wYucj(L,o[s(550,"6(vr")](e,o[s(637,i)](b,m)));for(let W=0;W<n;W++){let n=h+W*(r+m)+_,f=r;if(n<h&&(f-=o[s(357,"Dg%x")](h,n),n=h),n+f>o[s(442,"JoFr")](h,N)&&(f=o[s(641,"u*Bq")](h,N)-n),o[s(326,"@VAZ")](f,1))continue;const L=(e+W)%2==0?u:R,K={};K.x=n,K.y=O,K.width=f,K[s(481,i)]=b,K[s(664,"Dg%x")]=k,x[s(294,"IUqv")](_0xd30bed(Rect,K,s(422,"yL36")+d+"-"+t+"-"+W+"-"+e)),x[s(564,"K2qu")](_0xd30bed(Rect,{x:n,y:O,width:f-1,height:b-1,children:_0xd30bed(LinearGradient,{start:o.CODHX(vec,n,O),end:vec(n,o.IBFfG(O,b)-1),colors:[a,L,k]})},s(350,"rp17")+d+"-"+t+"-"+W+"-"+e)),x[s(711,S)](o[s(567,"V%@N")](_0xd30bed,Rect,{x:n,y:O,width:o[s(508,")w8#")](f,1),height:1,color:C},s(630,"bdYw")+d+"-"+t+"-"+W+"-"+e))}}}else if("steel"===e.type){const e={};e.x=h,e.y=L,e.width=N,e[s(404,"*6hj")]=N,e[s(650,"V%@N")]=TANK_1990_COLORS[s(515,"2o2J")],x[s(544,"rp17")](o[s(383,"J)3U")](_0xd30bed,Rect,e,s(705,u)+d+"-"+t)),x[s(402,"(zme")](_0xd30bed(Rect,{x:h,y:L,width:N,height:o[s(319,"KK5!")](N,1),children:_0xd30bed(LinearGradient,{start:vec(h,L),end:vec(h,L+N-1),colors:[TANK_1990_COLORS[s(400,W)],TANK_1990_COLORS[s(329,"Y3w5")],TANK_1990_COLORS[s(480,"LyGU")]]})},"sf-"+d+"-"+t));const n=o[s(382,"LyGU")](N,.07),_=.18*N,O={};O.cx=h+_,O.cy=L+_,O.r=n,O[s(655,"90wq")]=TANK_1990_COLORS.STEEL_RIVET,x.push(_0xd30bed(Circle,O,"sr1-"+d+"-"+t)),x[s(378,R)](_0xd30bed(Circle,{cx:o[s(570,"IUqv")](h+N,_),cy:L+_,r:n,color:TANK_1990_COLORS.STEEL_RIVET},"sr2-"+d+"-"+t));const S={};S.cx=h+_,S.cy=L+N-_,S.r=n,S[s(340,C)]=TANK_1990_COLORS.STEEL_RIVET,x[s(586,"i3G3")](_0xd30bed(Circle,S,s(341,"*6hj")+d+"-"+t)),x[s(672,"Gymw")](_0xd30bed(Circle,{cx:o[s(642,"d#]J")](h,N)-_,cy:L+N-_,r:n,color:TANK_1990_COLORS[s(434,"13d4")]},s(715,W)+d+"-"+t)),x[s(507,"(M&M")](_0xd30bed(Rect,{x:o[s(637,i)](h,.45*N),y:o[s(627,r)](L,.2*N),width:.1*N,height:.6*N,color:TANK_1990_COLORS[s(426,"K2qu")]},s(675,"L2OK")+d+"-"+t)),x[s(632,"^tnd")](o[s(395,"7n[j")](_0xd30bed,Rect,{x:h+.2*N,y:L+o[s(535,"6(vr")](N,.45),width:.6*N,height:.1*N,color:TANK_1990_COLORS.STEEL_SHADOW},s(315,a)+d+"-"+t))}else if(o.XoMzQ(e[s(376,"mzeB")],s(676,"K14@"))){const e={};e.x=h,e.y=L,e[s(346,"G$FP")]=N,e[s(304,"@2]5")]=N,e.color=TANK_1990_COLORS[s(430,"uyCG")],x.push(_0xd30bed(Rect,e,"wd-"+d+"-"+t)),x[s(640,k)](o.XmSSH(_0xd30bed,Rect,{x:h,y:L,width:N,height:.6*N,children:_0xd30bed(LinearGradient,{start:vec(h,L),end:vec(h,L+.6*N),colors:[TANK_1990_COLORS[s(433,C)],TANK_1990_COLORS[s(296,"@2]5")]]})},s(338,"rp17")+d+"-"+t)),x[s(562,"L2OK")](_0xd30bed(Rect,{x:h+2,y:o.Byqzk(L,o[s(573,S)](N,.25)),width:.4*N,height:1,color:TANK_1990_COLORS.WATER_HIGHLIGHT},s(448,"mzeB")+d+"-"+t)),x[s(651,"Uyzd")](_0xd30bed(Rect,{x:h+o[s(661,"i3G3")](N,.5),y:o[s(409,"%K0H")](L,.55*N),width:.35*N,height:1,color:TANK_1990_COLORS[s(377,"LyGU")]},s(615,"Xp$f")+d+"-"+t));const W={};W.x=h,W.y=L,W.width=N,W[s(323,"K14@")]=1,W.color=TANK_1990_COLORS[s(636,"bhSA")],x.push(_0xd30bed(Rect,W,s(328,"rp17")+d+"-"+t))}else if(e[s(388,"8JjK")]===s(438,"mzeB")){const e={};e.x=h,e.y=L,e[s(488,"K&d[")]=N,e[s(530,"KK5!")]=N,e[s(543,a)]=TANK_1990_COLORS[s(583,"(M&M")],x[s(507,"(M&M")](_0xd30bed(Rect,e,s(301,"u*Bq")+d+"-"+t)),x[s(466,"Y3w5")](_0xd30bed(Rect,{x:h,y:L,width:N,height:N,children:_0xd30bed(LinearGradient,{start:vec(h,L),end:vec(h,L+N),colors:[TANK_1990_COLORS[s(521,i)],TANK_1990_COLORS.GRASS_MID,TANK_1990_COLORS.GRASS_BASE]})},s(660,"bhSA")+d+"-"+t));const W=o[s(684,"J)3U")](N,4);for(let e=0;e<3;e++)x[s(407,"41Oa")](o[s(351,"Xp$f")](_0xd30bed,Rect,{x:h+W*(e+.5),y:o[s(397,C)](L,1),width:2,height:.3*N,color:TANK_1990_COLORS[s(392,k)]},s(563,"K14@")+d+"-"+t+"-"+e))}else if(e[s(293,"rp17")]===o.fPRgf){const e={};e.x=h,e.y=L,e[s(594,"rp17")]=N,e[s(668,"41Oa")]=N,e[s(526,"IUqv")]=TANK_1990_COLORS[s(415,"L2OK")],x.push(o[s(548,"@2]5")](_0xd30bed,Rect,e,"bo-"+d+"-"+t)),x[s(643,u)](_0xd30bed(Rect,{x:h+2,y:L+2,width:o.rSqXq(N,4),height:o[s(452,"njlJ")](N,4),children:_0xd30bed(LinearGradient,{start:o[s(547,"7n[j")](vec,h+2,o[s(408,O)](L,2)),end:o[s(532,"(zme")](vec,o[s(356,"KK5!")](h,2),o.IccFQ(o[s(312,"bdYw")](L,N),2)),colors:[TANK_1990_COLORS[s(344,"(zme")],TANK_1990_COLORS.BASE_FACE,TANK_1990_COLORS[s(584,"fBTB")]]})},s(439,"LyGU")+d+"-"+t));const W=h+N/2,n=L+N/2,r=o[s(429,"#vfk")](N,.22);x[s(590,"90wq")](_0xd30bed(Line,{p1:vec(W,o[s(334,"8JjK")](n,r)),p2:vec(W,n+r),color:TANK_1990_COLORS[s(680,R)],style:"stroke",strokeWidth:2},s(652,"Dg%x")+d+"-"+t)),x.push(o[s(300,"m#Dx")](_0xd30bed,Line,{p1:vec(W-r,n),p2:vec(W+r,n),color:TANK_1990_COLORS.BASE_INNER,style:s(599,_),strokeWidth:2},s(605,"Xp$f")+d+"-"+t)),x[s(294,"IUqv")](_0xd30bed(Rect,{x:h+1,y:L+1,width:o[s(673,")w8#")](N,2),height:o[s(411,"*6hj")](N,2),color:TANK_1990_COLORS[s(412,"bhSA")],style:s(551,")w8#"),strokeWidth:1},s(514,"njlJ")+d+"-"+t))}})}),x},[o]);if(!t)return null;const W={};return W[e(495,"yL36")]=StyleSheet.absoluteFill,W[e(321,"Y3w5")]=e(504,"Uyzd"),W[e(568,"LyGU")]=t,_0xd30bed(Canvas,W)});StaticMapCanvas[_0x155429(691,"Y3w5")]=_0x155429(701,"mzeB");const DynamicEntitiesCanvas=_0x5a54cb.memo(()=>{const e="LyGU",d="%K0H",o="*6hj",t=_0x155429,W={nSyCR:function(e,d){return e*d},VlhDA:function(e,d,o,t,W,n){return e(d,o,t,W,n)},SiYbJ:t(353,"d#]J"),NbIrT:function(e){return e()}},n=W[t(510,"mzeB")](useGameVersion),r=useMemo(()=>{const n=t,r=useTank1990Store.getState(),{playerTank:_,enemyTanks:x,bullets:O,cellSize:i}=r;if(!_)return null;const S=W.nSyCR(i,.8),u=S/2,R=[],C=Date[n(609,"^tnd")]();_[n(381,"@VAZ")]&&W[n(417,"[^Z^")](render3DTank,_,S,u,C,R);for(let d=0;d<x[n(373,e)];d++){const e=x[d];e[n(531,"*Z[k")]&&W.VlhDA(render3DTank,e,S,u,C,R)}const a=.12*i,k=.5*i;for(const t of O){let r=t.x,_=t.y;switch(t[n(614,e)]){case"up":_+=k;break;case W[n(352,"LyGU")]:_-=k;break;case n(497,"V%@N"):r+=k;break;case n(591,d):r-=k}R[n(549,"6(vr")](_0xd30bed(Line,{p1:vec(t.x,t.y),p2:vec(r,_),color:TANK_1990_COLORS[n(536,"6(vr")],style:n(540,"2o2J"),strokeWidth:1.5*a,strokeCap:"round"},n(696,"bhSA")+t.id));const x={};x.cx=t.x,x.cy=t.y,x.r=2*a,x[n(421,"wZcD")]=TANK_1990_COLORS[n(359,"rp17")],R[n(562,"L2OK")](_0xd30bed(Circle,x,n(311,d)+t.id));const O={};O.cx=t.x,O.cy=t.y,O.r=a,O[n(526,"IUqv")]=TANK_1990_COLORS[n(688,o)],R.push(_0xd30bed(Circle,O,n(528,o)+t.id))}return R},[n]);if(!r)return null;const _={};return _[t(629,"13d4")]=StyleSheet[t(486,"Xp$f")],_[t(578,"u*Bq")]=t(669,"fBTB"),_[t(674,"bhSA")]=r,_0xd30bed(Canvas,_)});DynamicEntitiesCanvas[_0x155429(653,"a9zW")]=_0x155429(308,"41Oa");const EffectsCanvas=_0x5a54cb[_0x155429(389,"Uyzd")](()=>{const e="Dg%x",d="7n[j",o="#vfk",t="(zme",W=_0x155429,n={QFpcy:function(e,d,o,t){return e(d,o,t)},WXcqU:function(e,d){return e+d},EUfTV:function(e,d,o,t){return e(d,o,t)},xfgfe:function(e,d){return e===d},YVpYO:function(e,d){return e/d},BHDBK:function(e,d){return e*d},VjMnQ:function(e,d){return e*d},kMjEI:function(e,d){return e*d},OcmNx:function(e,d){return e*d},Yvdwj:function(e,d){return e-d},uLjgN:function(e,d){return e<=d},Xaqdf:function(e,d,o,t){return e(d,o,t)},QhgFC:function(e){return e()},zikpu:function(e,d,o){return e(d,o)}},r=n[W(371,e)](useEffectsVersion),_=useMemo(()=>{const e=W;if("zjipm"!==e(707,d)){const W=useTank1990Store[e(538,"(M&M")](),{explosions:r,muzzleFlashes:_,cellSize:x}=W;if(n.xfgfe(r.length,0)&&n[e(490,"13d4")](_[e(325,"90wq")],0))return null;const O=Date[e(699,"Gymw")](),i=[],S=.8*x;for(const t of r)if(e(451,"bdYw")===e(517,"fBTB")){const o={};o.x=_0x3d98c2,o.y=_0x588ebb,o[e(553,"i3G3")]=_0x5be917,o[e(304,"@2]5")]=_0x44aaa6,o[e(513,"6(vr")]=_0x4133d3.WATER_DEEP,_0x2e22f6[e(579,"J)3U")](AMvKlh[e(659,"mzeB")](_0x1c3e44,_0x2da5b6,o,e(527,d)+_0x52da8f+"-"+_0x37acb7)),_0x465a37[e(640,"yL36")](_0x39ffe7(_0x263023,{x:_0x4e371c,y:_0x5c1d04,width:_0x3106bc,height:.6*_0x4aa298,children:_0x1f62cb(_0x1b37a7,{start:_0x2f8358(_0x5699be,_0x3a1826),end:_0x1b5072(_0x527d74,_0x1f5cce+.6*_0x4b8859),colors:[_0x276ec5[e(379,"%K0H")],_0x2a09cf[e(577,"*Z[k")]]})},"wm-"+_0x371e12+"-"+_0x65c7ae));const t={};t.x=_0x2bfe52+2,t.y=_0x1226d2+.25*_0x3a51cc,t[e(502,"13d4")]=.4*_0x45c499,t[e(450,"d#]J")]=1,t.color=_0x454127.WATER_HIGHLIGHT,_0x24fdf5[e(586,"i3G3")](_0x34ee4a(_0x266a6a,t,"wh1-"+_0x435ffd+"-"+_0x461e5f)),_0x26a622.push(_0x5da0c1(_0x317e64,{x:_0x29e3ca+.5*_0x289aed,y:AMvKlh.WXcqU(_0x37e261,.55*_0x49423d),width:.35*_0x10728c,height:1,color:_0x30f812.WATER_HIGHLIGHT},e(580,"(zme")+_0x4d92e3+"-"+_0x19e322));const W={};W.x=_0x5a4bde,W.y=_0x1d1b8a,W.width=_0x5cebee,W[e(460,"*Z[k")]=1,W[e(610,"KK5!")]=_0x4effeb.WATER_FOAM,_0x18944d[e(484,"m#Dx")](AMvKlh[e(552,"Dg%x")](_0x151170,_0x961b83,W,e(545,"K14@")+_0x28e0cb+"-"+_0x2c57b0))}else{const d=O-t[e(470,"m#Dx")],W=TANK_1990_GAME_CONFIG.EXPLOSION_DURATION,r=Math[e(703,"G$FP")](n[e(414,"%K0H")](d,W),1),_=Math[e(302,"LyGU")](3*r,1),u=Math[e(558,"@VAZ")](0,1-r),R=n[e(446,"m#Dx")](S,.5+n[e(574,"Uyzd")](_,.5)),C=Math[e(539,"bdYw")](10*u);i[e(632,"^tnd")](_0xd30bed(Circle,{cx:t.x,cy:t.y,r:n[e(386,"JoFr")](1.6*R,_),color:EXPLOSION_SMOKE_COLORS[C]},"es-"+t.id));const a={};a.cx=t.x,a.cy=t.y,a.r=1.3*R,a[e(405,"uyCG")]=EXPLOSION_OUTER_COLORS[C],i.push(_0xd30bed(Circle,a,e(647,"(M&M")+t.id));const k={};k.cx=t.x,k.cy=t.y,k.r=R,k.color=EXPLOSION_MID_COLORS[C],i[e(597,"KK5!")](_0xd30bed(Circle,k,e(613,"bhSA")+t.id));const f={};f.cx=t.x,f.cy=t.y,f.r=.55*R,f[e(380,"Xp$f")]=EXPLOSION_INNER_COLORS[C],i.push(n[e(566,"@2]5")](_0xd30bed,Circle,f,"ei-"+t.id)),i[e(534,"bdYw")](_0xd30bed(Circle,{cx:t.x,cy:t.y,r:n[e(444,"a9zW")](R,.25),color:EXPLOSION_CORE_COLORS[C]},e(559,"90wq")+t.id));for(let d=0;d<4;d++){const W=SHRAPNEL_OFFSETS[d],r=1.5*R*_,O=t.x+n[e(628,"njlJ")](W[e(625,"@VAZ")],r),S=t.y+W[e(374,o)]*r,a=n[e(520,"JoFr")](n[e(425,"K2qu")](x,.06),u);if(a>.3){const W={};W.cx=O,W.cy=S,W.r=a,W[e(449,o)]=EXPLOSION_SHRAPNEL_COLORS[C],i.push(_0xd30bed(Circle,W,"ep-"+t.id+"-"+d))}}}const u=.35*x;for(const d of _){const o=n[e(503,"%K0H")](O,d[e(611,")w8#")]),W=Math.max(0,1-o/100);if(n[e(619,"^tnd")](W,0))continue;const r=Math[e(679,t)](10*W);i.push(n[e(292,"bhSA")](_0xd30bed,Circle,{cx:d.x,cy:d.y,r:n[e(471,t)](u,1.8),color:MUZZLE_OUTER_COLORS[r]},e(317,"*6hj")+d.id));const _={};_.cx=d.x,_.cy=d.y,_.r=u,_[e(610,"KK5!")]=MUZZLE_INNER_COLORS[r],i[e(331,")w8#")](_0xd30bed(Circle,_,e(644,"4xO#")+d.id));const x={};x.cx=d.x,x.cy=d.y,x.r=.4*u,x.color=MUZZLE_CORE_COLORS[r],i[e(549,"6(vr")](_0xd30bed(Circle,x,e(518,"V%@N")+d.id))}return i}{const d=_0x342016[_0x2a4e75];d[e(582,"yL36")]&&_0x2fa9ee(d,_0xa076ba,_0x2aa68b,_0x155db9,_0x2d5ce3)}},[r]);if(!_)return null;const x={};return x[W(592,"2o2J")]=StyleSheet[W(459,"4xO#")],x[W(556,e)]=W(345,"K2qu"),x[W(347,"KK5!")]=_,n[W(337,"G$FP")](_0xd30bed,Canvas,x)});function _0x4f20(e,d){e-=291;const o=_0x3ed1();let t=o[e];if(void 0===_0x4f20.fBcoUb){const e=function(e,d){let o,t,W=[],n=0,r="";for(e=function(e){let d="",o="";for(let o,t,W=0,n=0;t=e.charAt(n++);~t&&(o=W%4?64*o+t:t,W++%4)?d+=String.fromCharCode(255&o>>(-2*W&6)):0)t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(t);for(let e=0,t=d.length;e<t;e++)o+="%"+("00"+d.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(o)}(e),t=0;t<256;t++)W[t]=t;for(t=0;t<256;t++)n=(n+W[t]+d.charCodeAt(t%d.length))%256,o=W[t],W[t]=W[n],W[n]=o;t=0,n=0;for(let d=0;d<e.length;d++)t=(t+1)%256,n=(n+W[t])%256,o=W[t],W[t]=W[n],W[n]=o,r+=String.fromCharCode(e.charCodeAt(d)^W[(W[t]+W[n])%256]);return r};_0x4f20.JFuRwk=e,_0x4f20.wDhJsG={},_0x4f20.fBcoUb=!0}const W=o[0];_0x4f20.VyPbwk!==W&&(_0x4f20.wDhJsG={},_0x4f20.VyPbwk=W);const n=_0x4f20.wDhJsG[e];return void 0===n?(void 0===_0x4f20.QkOpGV&&(_0x4f20.QkOpGV=!0),t=_0x4f20.JFuRwk(t,d),_0x4f20.wDhJsG[e]=t):t=n,t}EffectsCanvas[_0x155429(653,"a9zW")]="EffectsCanvas";export const GameBoard=_0x5a54cb[_0x155429(335,"wZcD")](()=>{const e=_0x155429,d={OZwkZ:function(e){return e()},xZVOy:function(e,d,o){return e(d,o)}},o=d[e(363,"uyCG")](useBoardReady),t=useMemo(()=>{const d=e,{boardWidth:o,boardHeight:t}=useTank1990Store[d(616,"Xp$f")](),W={};return W[d(502,"13d4")]=o,W[d(443,"bdYw")]=t,[styles.container,W]},[o]);return o?d[e(499,"i3G3")](_0x2a2769,View,{style:t,children:[_0xd30bed(StaticMapCanvas,{}),_0xd30bed(DynamicEntitiesCanvas,{}),_0xd30bed(EffectsCanvas,{})]}):null});const _0x554ed3={};_0x554ed3[_0x155429(475,"8JjK")]=2,_0x554ed3[_0x155429(468,"G$FP")]=_0x155429(327,"njlJ"),_0x554ed3[_0x155429(307,"8JjK")]=4,_0x554ed3.overflow=_0x155429(709,"K&d[");const _0x19a884={};_0x19a884[_0x155429(645,"i3G3")]=_0x554ed3;const styles=StyleSheet.create(_0x19a884);GameBoard[_0x155429(685,"L2OK")]="GameBoard";
@@ -1 +0,0 @@
1
- "use strict";function _0x2612(e,o){e-=148;const r=_0x5260();let t=r[e];if(void 0===_0x2612.eIvxaH){const e=function(e,o){let r,t,n=[],s=0,i="";for(e=function(e){let o="",r="";for(let r,t,n=0,s=0;t=e.charAt(s++);~t&&(r=n%4?64*r+t:t,n++%4)?o+=String.fromCharCode(255&r>>(-2*n&6)):0)t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(t);for(let e=0,t=o.length;e<t;e++)r+="%"+("00"+o.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(r)}(e),t=0;t<256;t++)n[t]=t;for(t=0;t<256;t++)s=(s+n[t]+o.charCodeAt(t%o.length))%256,r=n[t],n[t]=n[s],n[s]=r;t=0,s=0;for(let o=0;o<e.length;o++)t=(t+1)%256,s=(s+n[t])%256,r=n[t],n[t]=n[s],n[s]=r,i+=String.fromCharCode(e.charCodeAt(o)^n[(n[t]+n[s])%256]);return i};_0x2612.RbLvNN=e,_0x2612.QUMVoS={},_0x2612.eIvxaH=!0}const n=r[0];_0x2612.MYEDqP!==n&&(_0x2612.QUMVoS={},_0x2612.MYEDqP=n);const s=_0x2612.QUMVoS[e];return void 0===s?(void 0===_0x2612.CgIDBL&&(_0x2612.CgIDBL=!0),t=_0x2612.RbLvNN(t,o),_0x2612.QUMVoS[e]=t):t=s,t}const _0x4b1b1f=_0x2612;!function(){const e=_0x2612,o=_0x5260();for(;;)try{if(304350==-parseInt(e(168,"blWa"))/1*(-parseInt(e(171,"%r)a"))/2)+parseInt(e(166,"PFTQ"))/3+parseInt(e(160,"Dp[i"))/4*(parseInt(e(149,"1$kN"))/5)+-parseInt(e(172,"1$kN"))/6+-parseInt(e(155,"k&es"))/7+-parseInt(e(157,"PgZQ"))/8+parseInt(e(151,"d1eN"))/9)break;o.push(o.shift())}catch(e){o.push(o.shift())}}();import{c as _0x7e8d27}from"react/compiler-runtime";import _0x5ebf62 from"react";import{View}from"react-native";import{useScore,useLives,useEnemiesRemaining}from"../Tank1990Store.js";import{TANK_1990_COLORS,TANK_1990_GAME_CONFIG}from"../Tank1990Constants.js";import{ScoreBoardContainer,ScoreValue,ScoreLives,ScoreColumn,scoreBoardStyles as _0x38c84b}from"../../../helpers/index.js";import{jsx as _0x303300,jsxs as _0x3bd937}from"react/jsx-runtime";function _0x5260(){const e=["r04Nw0DeWQtcKZJdI8kr","AuhcLu7cSG","iCkjrgXhimo+","q8kaw8kEWPRdJ1TC","hHZdUCocrW","tMdcTLNdKJr6u1xdS8knmCoo","BKFcNxlcGxZcVCoB","WRhdRCkyeCoCvNpdOJ7dUmk5iW","xSotWRlcVCoKf8oGW4O","ahZcRwFdG1pdQKZcJSkue8kLWQO","WPWeW6WVyWZdTNZcI8kz","W7tcRahdVGvNxmklmmoDtmkT","W6JcSCkbW5aFWQa","tMdcSv3dKtf7DeZdMCkebSoE","W6rPlG","eubkW44azCksaCoEWR7cI8k/bW","y8kWWOnofW","eCoybColWRxdJwPMW5qR","hCkBWRhdH0ZcNCk/","WQVdRCkYWRqh","FaRdNrpcVYlcJa","Ad7cUwSA","CgqBEw4","oSk/WO7cSSofqJZcR8oNeCkvW79H","WQC/BbtdJ0DZWPlcKJJcJbi","W6xcVCoetW","WOBcIY7cQfRdSCkIr18E","FbJcKbDrgCoeW63cSvH2W5fG","befFimku","oSoVWOrFgvn8ra","WRRdOmkCeSoAuYZdLbZdVCkYjvC","vmotW7ddPCkfzSkHW4JcUf0IW65t","tSouiSk9vJCnW7ufk0vS"];return(_0x5260=function(){return e})()}export const ScoreBoard=_0x5ebf62[_0x4b1b1f(167,"1$kN")](e=>{const o=_0x4b1b1f,r={jgppZ:function(e,o,r){return e(o,r)},ZVvOP:function(e,o){return e!==o},WKEAn:function(e,o){return e!==o}},t=_0x7e8d27(13),{offset:n}=e,s=void 0===n?0:n,i=useScore(),a=useEnemiesRemaining(),f=useLives();let x,d,u,C,W;if(t[0]!==i){const e={};e[o(163,"Xx4f")]=i,e.label=o(164,"rT8v"),x=r[o(176,"I7LR")](_0x303300,ScoreValue,e),t[0]=i,t[1]=x}else x=t[1];if(t[2]!==a){const e={};e.label=o(162,"d1eN"),e.value=a,e[o(179,"IRRb")]=TANK_1990_COLORS.SCORE_TEXT,d=_0x303300(ScoreColumn,e),t[2]=a,t[3]=d}else d=t[3];if(r[o(161,"rcOj")](t[4],f)){const e={};e.lives=f,e[o(148,"I7LR")]=TANK_1990_GAME_CONFIG[o(165,"EpmI")],u=_0x303300(ScoreLives,e),t[4]=f,t[5]=u}else u=t[5];if(r.WKEAn(t[6],x)||t[7]!==d||t[8]!==u){const e="2|1|4|3|0".split("|");let n=0;for(;;){switch(e[n++]){case"0":t[9]=C;continue;case"1":t[6]=x;continue;case"2":const e={};e[o(170,")u0H")]=_0x38c84b[o(156,"PFTQ")],e.children=[x,d,u],C=r[o(158,"%r)a")](_0x3bd937,View,e);continue;case"3":t[8]=u;continue;case"4":t[7]=d;continue}break}}else C=t[9];if(t[10]!==s||t[11]!==C){const e={};e[o(154,"azlT")]=s,e[o(178,"Ijx2")]=C,W=_0x303300(ScoreBoardContainer,e),t[10]=s,t[11]=C,t[12]=W}else W=t[12];return W});ScoreBoard[_0x4b1b1f(175,"rT8v")]=_0x4b1b1f(152,"AZL2");
@@ -1 +0,0 @@
1
- "use strict";function _0x13ed(){var r=["WRvinCojFdFdU8kN","W5vdWQBcTSkFW7nEWQ3cNSkmWQmc","W4BdIrZcVSo4W5RcJfy","W4XdW7WrWPi2WOW6CCoiW6dcGXi","E8oWWOFcV8kDWRjJyaJdNmkveq","AGRdIMZdSSkxbcvTfaNdHW","DspdJKBcISo8i8oSjCk+iG","W4ldIbdcLSovW5dcUq","WQLUjs4kW5RcHqddN8kzW7C","W6NcH183W69OuKddRCk5dhW","suBcTs9cpCo1aq","mCk/W4VdImonlIpdHCo/xHiE","WRm/DmkHemkkW5pcO8kPfSojW6W","jrfsW5nZWPe4mgpdSmo1W5u","W7jMmConfWlcLZq","WQawCmofWPddMsetW6pcTq1O","pXdcK8o5W5XSW7f4","WPxcS3yRWQ7dJGBcLW","W7bNtCkjqhddOIxcSeFdPmkNna"];return(_0x13ed=function(){return r})()}function _0x1530(r,d){r-=425;var n=_0x13ed(),o=n[r];void 0===_0x1530.eAQLfP&&(_0x1530.TzRAgO=function(r,d){var n,o,W=[],e=0,t="";for(r=function(r){for(var d,n,o="",W="",e=0,t=0;n=r.charAt(t++);~n&&(d=e%4?64*d+n:n,e++%4)?o+=String.fromCharCode(255&d>>(-2*e&6)):0)n="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(n);for(var a=0,f=o.length;a<f;a++)W+="%"+("00"+o.charCodeAt(a).toString(16)).slice(-2);return decodeURIComponent(W)}(r),o=0;o<256;o++)W[o]=o;for(o=0;o<256;o++)e=(e+W[o]+d.charCodeAt(o%d.length))%256,n=W[o],W[o]=W[e],W[e]=n;o=0,e=0;for(var a=0;a<r.length;a++)e=(e+W[o=(o+1)%256])%256,n=W[o],W[o]=W[e],W[e]=n,t+=String.fromCharCode(r.charCodeAt(a)^W[(W[o]+W[e])%256]);return t},_0x1530.onFDxM={},_0x1530.eAQLfP=!0);var W=n[0];_0x1530.qDMZxg!==W&&(_0x1530.onFDxM={},_0x1530.qDMZxg=W);var e=_0x1530.onFDxM[r];return void 0===e?(void 0===_0x1530.ddqLMg&&(_0x1530.ddqLMg=!0),o=_0x1530.TzRAgO(o,d),_0x1530.onFDxM[r]=o):o=e,o}!function(){for(var r=_0x1530,d=_0x13ed();;)try{if(109861==parseInt(r(442,"5ffh"))/1+parseInt(r(437,"Q4@o"))/2+-parseInt(r(433,"3ivc"))/3*(-parseInt(r(429,"XZMU"))/4)+parseInt(r(441,"8q8]"))/5+-parseInt(r(431,"hQKy"))/6*(parseInt(r(432,"zqq)"))/7)+parseInt(r(443,"E8Q9"))/8*(-parseInt(r(439,"m(H)"))/9)+-parseInt(r(438,"(eo^"))/10*(parseInt(r(428,")A^Z"))/11))break;d.push(d.shift())}catch(r){d.push(d.shift())}}();
@@ -1 +0,0 @@
1
- "use strict";const _0x5658ae=_0x1b5c;function _0x1b5c(e,n){e-=129;const t=_0x3054();let o=t[e];if(void 0===_0x1b5c.TMgNdW){const e=function(e,n){let t,o,r=[],W=0,i="";for(e=function(e){let n="",t="";for(let t,o,r=0,W=0;o=e.charAt(W++);~o&&(t=r%4?64*t+o:o,r++%4)?n+=String.fromCharCode(255&t>>(-2*r&6)):0)o="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(o);for(let e=0,o=n.length;e<o;e++)t+="%"+("00"+n.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(t)}(e),o=0;o<256;o++)r[o]=o;for(o=0;o<256;o++)W=(W+r[o]+n.charCodeAt(o%n.length))%256,t=r[o],r[o]=r[W],r[W]=t;o=0,W=0;for(let n=0;n<e.length;n++)o=(o+1)%256,W=(W+r[o])%256,t=r[o],r[o]=r[W],r[W]=t,i+=String.fromCharCode(e.charCodeAt(n)^r[(r[o]+r[W])%256]);return i};_0x1b5c.aWvubs=e,_0x1b5c.xcSaQt={},_0x1b5c.TMgNdW=!0}const r=t[0];_0x1b5c.WquGyY!==r&&(_0x1b5c.xcSaQt={},_0x1b5c.WquGyY=r);const W=_0x1b5c.xcSaQt[e];return void 0===W?(void 0===_0x1b5c.QRuHFV&&(_0x1b5c.QRuHFV=!0),o=_0x1b5c.aWvubs(o,n),_0x1b5c.xcSaQt[e]=o):o=W,o}!function(){const e="Sx5W",n=_0x1b5c,t=_0x3054();for(;;)try{if(246943==parseInt(n(271,"INTj"))/1+parseInt(n(283,e))/2+parseInt(n(232,"mGv!"))/3*(-parseInt(n(186,"&zr8"))/4)+-parseInt(n(209,"e)3#"))/5+parseInt(n(131,"8zvn"))/6*(-parseInt(n(207,"pR*A"))/7)+-parseInt(n(163,"e)3#"))/8*(parseInt(n(219,e))/9)+parseInt(n(321,"KJjt"))/10)break;t.push(t.shift())}catch(e){t.push(t.shift())}}();import{create}from"zustand";import{subscribeWithSelector}from"zustand/middleware";import{immerMiddleware}from"../../services/UtilsService.js";import{playSound,GAME_SOUNDS}from"../../services/SoundsService.js";import{playHaptic,HapticType}from"../../services/HapticsService.js";import{TIC_TAC_TOE_CONSTANTS,WINNING_COMBINATIONS}from"./TicTacToeConstants.js";import{setGameInterval,clearGameInterval}from"../../helpers/GameTimer.js";let timerIntervalRef=null;const clearTimer=()=>{timerIntervalRef&&(clearGameInterval(timerIntervalRef),timerIntervalRef=null)},getEmptyCells=e=>{const n=_0x1b5c,t=[];for(let o=0;o<e[n(239,"Xc94")];o++)null===e[o]&&t.push(o);return t},minimax=(e,n,t,o,r)=>{const W=_0x1b5c,i={iliWQ:function(e,n){return e(n)},GfsNs:function(e,n){return e===n},eaYof:function(e,n){return e(n)},HMUZr:function(e,n,t,o,r,W){return e(n,t,o,r,W)},rMZxr:function(e,n){return e+n}},a=i.iliWQ(checkWinnerFromBoard,e);if("X"===a)return 10-n;if(i.GfsNs(a,"O"))return n-10;if(0===i[W(243,"1fUT")](getEmptyCells,e)[W(224,"2x28")])return 0;if(t){let t=-1/0;for(const i of getEmptyCells(e)){const a=[...e];a[i]="X";const u=minimax(a,n+1,!1,o,r);if(t=Math.max(t,u),r<=(o=Math[W(223,"pSHx")](o,u)))break}return t}if(W(237,"piq@")===W(245,"(Q9Z")){let t=1/0;for(const a of getEmptyCells(e)){const u=[...e];u[a]="O";const s=i[W(177,"R9^m")](minimax,u,i.rMZxr(n,1),!0,o,r);if(t=Math[W(229,"av$f")](t,s),(r=Math[W(147,"Z(c6")](r,s))<=o)break}return t}_0x330832&&(_0x320464(_0x2d2841),_0x21c338=null)},checkWinnerFromBoard=e=>{const n=_0x1b5c,t={};t[n(322,"jFhh")]=function(e,n){return e!==n};const o=t;for(const[t,r,W]of WINNING_COMBINATIONS)if(void 0!==t&&void 0!==r&&o[n(208,"Iu!O")](W,void 0)&&e[t]&&e[t]===e[r]&&e[t]===e[W])return e[t];return null},findWinningCombo=e=>{const n=_0x1b5c,t={};t[n(261,"n83Z")]=function(e,n){return e!==n};const o=t;for(const t of WINNING_COMBINATIONS){const[r,W,i]=t;if(void 0!==r&&o[n(296,"590[")](W,void 0)&&void 0!==i&&e[r]&&e[r]===e[W]&&e[r]===e[i])return t}return null},getBestMove=e=>{const n=_0x1b5c,t={};t[n(306,"QW9b")]=function(e,n){return e===n},t.aQfLS=function(e,n){return e*n},t[n(240,"2x28")]=function(e,n){return e===n},t[n(137,"t2)!")]=function(e,n){return e*n};const o=t,r=getEmptyCells(e);if(o[n(152,"pSHx")](r.length,0))return-1;if(Math.random()<.3)return r[Math.floor(o[n(206,"VPeh")](Math[n(166,"Xc94")](),r[n(213,"%@bI")]))];for(const n of r){const t=[...e];if(t[n]="X","X"===checkWinnerFromBoard(t))return n}for(const n of r){const t=[...e];if(t[n]="O","O"===checkWinnerFromBoard(t))return n}if(o[n(193,"nvSs")](e[4],null))return 4;const W=[0,2,6,8][n(264,"3r!B")](n=>null===e[n]);return W.length>0?W[Math[n(156,"590[")](o[n(176,"r^Ur")](Math[n(230,"JxY]")](),W[n(238,"R9^m")]))]:r[Math.floor(Math[n(195,"n83Z")]()*r.length)]};export const useTicTacToeStore=create()(subscribeWithSelector(immerMiddleware((e,n)=>({isPlaying:!1,isGameOver:!1,isTimedOut:!1,isPaused:!1,board:Array(9).fill(null),boardVersion:0,currentPlayer:"O",winner:null,winningCombination:null,isDraw:!1,time:0,timeLeft:TIC_TAC_TOE_CONSTANTS[_0x5658ae(231,"(Q9Z")],initializeGame:()=>{const n=_0x5658ae;({grTlO:function(e,n){return e(n)}})[n(292,"JxY]")](e,e=>{const t=n;e[t(189,"(Q9Z")]=Array(9)[t(198,"^yWV")](null),e[t(246,"3r!B")]+=1,e.currentPlayer="O",e.winner=null,e.winningCombination=null,e[t(269,"KJjt")]=!1,e[t(225,"3r!B")]=!1,e[t(203,"&i9N")]=!1,e[t(190,"JxY]")]=!1,e.time=0,e[t(158,"INTj")]=TIC_TAC_TOE_CONSTANTS.maxTime})},startGame:()=>{const t=_0x5658ae,o={rNHvO:function(e){return e()},cObmD:function(e,n){return e(n)}};o[t(289,"OJ[s")](clearTimer),timerIntervalRef=setGameInterval(()=>{const e=t;n()[e(151,"y#hV")]()},1e3),o[t(160,"590[")](e,e=>{const n=t,o=n(293,"JxY]")[n(274,"6XPo")]("|");let r=0;for(;;){switch(o[r++]){case"0":e[n(294,"QW9b")]=TIC_TAC_TOE_CONSTANTS[n(188,"^yWV")];continue;case"1":e[n(244,"hciL")]=null;continue;case"2":e[n(319,"nj$H")]=0;continue;case"3":e[n(211,"m5XD")]=null;continue;case"4":e[n(262,"Z(c6")]=!1;continue;case"5":e[n(184,"nvSs")]=!1;continue;case"6":e[n(313,"1fUT")]=!1;continue;case"7":e[n(159,"Eazc")]=!1;continue;case"8":e[n(134,"OJ[s")]=!0;continue;case"9":e[n(272,"av$f")]="O";continue;case"10":e[n(142,"QW9b")]=Array(9).fill(null);continue;case"11":e[n(139,"8zvn")]+=1;continue}break}})},stopGame:()=>{clearTimer(),e(e=>{e[_0x1b5c(217,"&i9N")]=!1})},resetGame:()=>{const n=_0x5658ae;clearTimer(),{AvLKR:function(e,n){return e(n)}}[n(132,"8zvn")](e,e=>{const t=n;e.board=Array(9).fill(null),e[t(178,"m5XD")]+=1,e.currentPlayer="O",e[t(299,"1fUT")]=null,e[t(270,"nj$H")]=null,e.isDraw=!1,e.isPlaying=!1,e[t(310,"3r!B")]=!1,e[t(159,"Eazc")]=!1,e[t(170,"piq@")]=0,e[t(259,"8zvn")]=TIC_TAC_TOE_CONSTANTS.maxTime})},pauseGame:()=>{clearTimer(),e(e=>{e[_0x1b5c(155,"OJ[s")]=!0})},resumeGame:()=>{const t=_0x5658ae;timerIntervalRef={Tydtw:function(e,n,t){return e(n,t)}}[t(200,"rk2l")](setGameInterval,()=>{const e=t;n()[e(154,"nj$H")]()},1e3),e(e=>{e[t(314,"y#hV")]=!1})},makeMove:(t,o)=>{const r="INTj",W="]xc)",i=_0x5658ae,a={xqFpe:i(273,"Z(c6"),ofjwM:function(e,n){return e(n)},EQvgg:i(288,r),IgDGO:function(e,n,t){return e(n,t)}},u=n();if(!u[i(307,"RDp3")]||u[i(317,"QW9b")]||null!==u.board[t])return;if("O"!==u.currentPlayer){if(i(227,r)!==i(309,W))return;{const e=a[i(179,"mGv!")][i(298,"RDp3")]("|");let n=0;for(;;){switch(e[n++]){case"0":_0x21a381[i(174,"590[")]=_0x3fa304(9)[i(210,"2x28")](null);continue;case"1":_0x19a00e.currentPlayer="O";continue;case"2":_0x2a9d42[i(215,"mGv!")]=!1;continue;case"3":_0x255903[i(138,"VPeh")]+=1;continue;case"4":_0x417897.isDraw=!1;continue;case"5":_0x2ce544[i(236,"Xc94")]=!1;continue;case"6":_0x19de5d[i(297,"HWqm")]=_0x2c26fd[i(165,"hciL")];continue;case"7":_0x2185a7.time=0;continue;case"8":_0x1d2543[i(185,"rk2l")]=!1;continue;case"9":_0x54c241[i(253,"]RwO")]=null;continue;case"10":_0x5eaed7[i(221,"6XPo")]=null;continue}break}}}const s=[...u[i(205,"HWqm")]];s[t]="O";const d=a[i(249,"n83Z")](checkWinnerFromBoard,s),m=null===d&&s.every(e=>null!==e),l=d?findWinningCombo(s):null;a[i(318,"Iu!O")](e,e=>{const n=i;e[n(268,"nj$H")][t]="O",e[n(276,"piq@")]+=1,"O"===d?(e[n(258,"n83Z")]="O",e.winningCombination=l,e[n(203,"&i9N")]=!0,e[n(308,"590[")]=!1):m?(e[n(202,"8zvn")]=!0,e.isGameOver=!0,e[n(199,"Eazc")]=!1):e[n(320,"RDp3")]="X"});const f={};if(f[i(252,"&i9N")]=i(141,"e)3#"),f.pitch=1.4,f[i(182,"e)3#")]=2,playSound(GAME_SOUNDS[i(291,"Xc94")]?.[i(226,"8zvn")]||f,o.enableSounds),playHaptic(HapticType[i(164,"JxY]")],o[i(149,"6XPo")]),"O"===d){clearTimer();const e={};return e[i(214,"pSHx")]=a[i(301,"KJjt")],e[i(316,"r^Ur")]=1.8,e[i(247,"rk2l")]=1,playSound(GAME_SOUNDS[i(234,"av$f")]?.[i(260,W)]||e,o[i(220,"OJ[s")]),void a.IgDGO(playHaptic,HapticType.SUCCESS,o.enableHaptics)}if(m){clearTimer();const e={text:"Draw!"};return e[i(277,"2x28")]=1.2,e[i(256,"jFhh")]=1,playSound(GAME_SOUNDS[i(248,"m5XD")]?.DRAW||e,o[i(180,"Eazc")]),void playHaptic(HapticType[i(312,"pSHx")],o[i(250,"jFhh")])}setTimeout(()=>{n().makeRobotMove(o)},500)},makeRobotMove:t=>{const o="nj$H",r="av$f",W=_0x5658ae,i={Aziwi:function(e){return e()},zTYgB:function(e,n){return e!==n},dHOpV:function(e,n,t){return e(n,t)},ccTCC:function(e,n){return e!==n},fBTsv:function(e,n,t){return e(n,t)}},a=i[W(255,"HWqm")](n);if(!a[W(254,"nvSs")]||a[W(143,"RDp3")]||i[W(281,"1fUT")](a[W(257,"#vnC")],"X"))return;const u=getBestMove(a.board);if(-1===u)return;const s=[...a.board];s[u]="X";const d=checkWinnerFromBoard(s),m=null===d&&s[W(295,o)](e=>null!==e),l=d?findWinningCombo(s):null;e(e=>{const n=W;e[n(150,"piq@")][u]="X",e.boardVersion+=1,"X"===d?(e[n(196,"INTj")]="X",e[n(145,"jFhh")]=l,e.isGameOver=!0,e[n(136,"2x28")]=!1):m?(e.isDraw=!0,e[n(287,"#vnC")]=!0,e.isPlaying=!1):e[n(300,"]RwO")]="O"});const f={};if(f[W(130,"590[")]=W(278,"o&g&"),f.pitch=.8,f.rate=1.5,i[W(157,"]RwO")](playSound,GAME_SOUNDS[W(191,"nvSs")]?.ROBOT||f,t[W(129,"QW9b")]),playHaptic(HapticType[W(212,r)],t.enableHaptics),"X"===d){if(i[W(241,r)]("AnBrY",W(282,"^yWV")))return _0x57b66d[_0xc05f17];{clearTimer();const e={};return e[W(315,"av$f")]=W(167,"womp"),e.pitch=.6,e[W(304,"Eazc")]=1,playSound(GAME_SOUNDS.TIC_TAC_TOE?.LOSE||e,t[W(285,"Sx5W")]),void playHaptic(HapticType[W(303,"2x28")],t[W(162,"HWqm")])}}if(m){clearTimer();const e={};e[W(279,"JxY]")]="Draw!",e.pitch=1.2,e[W(280,"t2)!")]=1,i[W(235,o)](playSound,GAME_SOUNDS[W(173,"]xc)")]?.DRAW||e,t[W(233,"n83Z")]),i.fBTsv(playHaptic,HapticType.MEDIUM,t.enableHaptics)}},checkWinner:()=>{const e=_0x5658ae,t={};t[e(284,"RDp3")]=function(e,n){return e!==n},t[e(302,"]xc)")]=function(e,n){return e===n};const o=t,r=n();for(const n of WINNING_COMBINATIONS){const[t,W,i]=n;if(void 0!==t&&o[e(201,"rk2l")](W,void 0)&&o[e(197,"womp")](i,void 0)&&r.board[t]&&o[e(204,"womp")](r.board[t],r[e(194,"rk2l")][W])&&r[e(150,"piq@")][t]===r[e(169,"1fUT")][i]){const o={};return o[e(148,"Sx5W")]=r.board[t],o[e(144,"womp")]=n,o}}const W={};return W[e(216,"QW9b")]=null,W.combination=null,W},checkDraw:()=>{const e=_0x5658ae;return n().board[e(222,"Z(c6")](e=>null!==e)},updateTime:()=>{const t=_0x5658ae,o={SclfG:function(e,n){return e(n)},NyFbC:function(e,n){return e<=n},KHRem:function(e,n){return e!==n},aYumf:t(133,"av$f"),PhkHJ:function(e){return e()}},r=n();if(o[t(305,"nj$H")](r[t(290,"piq@")],1)){if(o[t(153,"Kt#8")](o[t(265,"KJjt")],"fhHrf"))return o[t(192,"OJ[s")](_0x353207,_0x37cd32);o[t(183,"ibSy")](clearTimer),e(e=>{const n=t;e[n(175,"INTj")]+=1,e.timeLeft=0,e[n(168,"(Q9Z")]=!1,e[n(242,"VPeh")]=!0,e[n(171,"OJ[s")]=!0})}else o.SclfG(e,e=>{const n=t;e.time+=1,e[n(286,"o&g&")]-=1})}}))));export const useIsPlaying=()=>useTicTacToeStore(_temp);export const useIsGameOver=()=>({BRpkB:function(e,n){return e(n)}}[_0x5658ae(146,"1fUT")](useTicTacToeStore,_temp2));export const useIsTimedOut=()=>useTicTacToeStore(_temp3);export const useIsPaused=()=>useTicTacToeStore(_temp4);export const useBoard=()=>({cnElO:function(e,n){return e(n)}}[_0x5658ae(311,"nj$H")](useTicTacToeStore,_temp5));export const useBoardVersion=()=>useTicTacToeStore(_temp6);export const useCurrentPlayer=()=>useTicTacToeStore(_temp7);export const useWinner=()=>useTicTacToeStore(_temp8);export const useWinningCombination=()=>useTicTacToeStore(_temp9);export const useIsDraw=()=>useTicTacToeStore(_temp0);export const useTime=()=>useTicTacToeStore(_temp1);export const useTimeLeft=()=>useTicTacToeStore(_temp10);function _temp(e){return e[_0x5658ae(168,"(Q9Z")]}function _temp2(e){return e[_0x5658ae(185,"rk2l")]}function _temp3(e){return e[_0x5658ae(181,"KJjt")]}function _temp4(e){return e[_0x5658ae(218,"O(HO")]}function _temp5(e){return e[_0x5658ae(267,"pSHx")]}function _temp6(e){return e.boardVersion}function _temp7(e){return e.currentPlayer}function _temp8(e){return e[_0x5658ae(323,"pSHx")]}function _temp9(e){return e.winningCombination}function _temp0(e){return e[_0x5658ae(228,"Sx5W")]}function _temp1(e){return e.time}function _temp10(e){return e[_0x5658ae(161,"nj$H")]}function _0x3054(){const e=["hCk6rvldJeFdSLjXWRRcIW","WQGDd2JcNa","BfKQW6pdLY7dPmkXvSkU","W4JcIGHrjW","WPxdLmkctgOc","Au8qW63dJIm","ASkGWPddVdS","kSkquK7dMW","WOxdV8obWPFdQd3dQwZdGra","W4ugWQNcMfe","lNTrW7tcVLm","W4ldSCo2W4Go","nmkEWQ/dR8oVbqOlr0ZcNfK","o8kSW53cPa","W4DwWO3dOmk/BSo3aLSZyq","zfldPCk+hG","W6Supmk/WRtdM1hcNmkdW446W4ZdGa","ofOpW6dcT3lcRCoIlq","bWJdRmok","mSkkBdlcTH7cRCkSW7iuW6dcMg3cRCkKW6/cQ0e","BCokW4OsW4jBWRLhWP8","x8knpsjP","W7WBkCk4","WOfsACovjCkJW4mfW74OW5iNBq","Ff3dOCkNnJe","W6ihW6LkWPNcLmoPWPa","B8oKWPW","r1ZdVCkeaq","WPNcUCkVW47dK30","WQddMCospg4zemkAW60BW6BcQKNdTa","mmkyWQldQCoUiq","W6FcUSoKd3a","WQBdN8otp2SBrmoKW7GBW7dcLG","sXX2kCkJ","WQWWoMNcJG","W6/cKmovehCn","WRK2nxxcG8k6WPZdOmkxWPiHW5OvW5zTW7lcG8oN","iCoRqdNcUwRcQmoEvCotW5uq","kSkgDh/dVwJdHv1jWPtcTWyN","W4dcTSoyW4dcG3zCWOBdPYhcN8kSbSojW4dcNvZdTZVcOCkwWRW","W6lcMCkpzs0","WPjwWPRcGNxdHGqP","W53cNtXnaCkgcmkSuM8XsG","sCkWWQBdPZC","tKW3F1W","thpdJmo+","W6DOW63cKW","W5OZWQNcKhu","WP8bh8kOW48","W7D0p2XmW4JdUgnSW5hdJti","qqTYW7VcQq","WQmOBZ8uWPxdJ0HqW73dUIi","Eea/AJhdGeO0","WOTuxmoglCkOW7GJW7C7","tmkXaYJdUJtcQ8kx","Atq1ahO","W4VcMZbAkCk1c8kQ","uwm9W5xdRGRdG8kHD8kvWPq","x2tdOmoMW6W","csBdImk7WPiwzmkVqSkYgXH2WO7dUWJcTtmtWQDrW4q8mL8","eMKOW5f1W4fXCa","WQSPpMNcKW","W5ldQ1ZcR8oo","ASkEotbmh13cPW","EHPxW6JcRG","W5CoWP7cMvldUq","jSkwCc7cUH7cVSk/W7eyW7VcLhe","W4pcSSoNbxe","smoUWPFcKsO","FmklWOddIW0","WR7cSCoHW4a","WOaMhxNcQq","f2SJW5jp","ybLRW63cU1/cNCofpW","W7FdSh7cJSo9Dt3dTCoK","sCoDWP3cQc4","p8kcWONdVmoMnIapuvC","WQ0XhNFcPq","zdzteSkswq","W4KuWQdcLKldUa0+","f8k7cmk0W60mW59z","pCkwFNK","bMnEECof","d3mcW5vuW4fyCK9G","F8o4nsvp","WRO2nN4","AH9jW7pcV0JcGmo7nb7cPKTk","WRFdK8kGuIfoWOBcISozWQWOySk0oW","W7GqpmkTWPK","xHP5nCkIzG","a24KW5zvW4feA198AGW","W6RdPLBcLG","WQfyWRqCW6FdH8oTWQRdISo7vSoE","W5CyW4HKWOC","l8kBtN/dVG","CGKTgLtdTINdJIW","kmoocHXqW5ldRW","umkQWOldQd58fH8t","W5nhW6RcNw4","WO7dO8oNWOtdOq7dG2JdLWVdNSkV","W7qbW6vDWRhcP8oQWPBdImoCtCoL","W7PQBsRdNSoJWPBdI8kpWROgW54","W7JcUmkmpmkhWOa","bg8KW4zD","ybL8W6dcT0pcU8oDpq0","W63dJ8ofWRSpW4bfp8kDW6T9","W7Ktm8kZWRhdKh7cVSkCW5CXW4BdNxRdG8oJFvu","W6i1WOdcNhu","WP3cO8kf","WReVydmDWOi","W7tcH8kcBJviBSolW7KHW63cOei","W53cNtXnaq","c8k4pmk0W6WAW65uo3S","wbHXpCkX","WPpcMmoKW5pcMW","WRSVp3RcNSkXWQ/dISkvWPO","CGKTf0ddVcxdHa","W7JdR0hcJCoU","iCkRtsZcIq","yCk3g23dGtJcO8oc","WQxcO8obW4X0l8oxfSk0sW","W73dJeZcJ8oy","WRO2nN7cPSkXWP3dLW","E8kzntDSh3pcSSoCCCk7WPVdUW","WORdPmorpSkbW7vNogK","Df/dS8ocW7C","nhnhW47cSKZdLW","D0SqW67dLsy","W5ZdJ8okWRysWO5tiSkAW7CY","W5ZdUSoZW4OTwsKdWOG","W4iiWPhcHvm","W4VcMZbA","CGKPh1JdQItdRZ7dUW","WQ/cUHNdKCkKogtdImoKWQrqCLG","BmoKWPhcJsZdG17dH2folG","W7ZdRe/cKmo4","yCk3g20","merzCCoc","WRhdVmk5CwW","W7fWWQ/dJCkpECorl3Wvs8oO","dmkvWRqovW","WQNcVSo0W4D1l8oGnSk0uu/cUq","W6/cKmofc3SFW5tdTCoiWPy","W4NcTCkroG","e0mis3y","BCokW50FW45hWP9FWP3dIa","imk+W67cOmkvW5y+BmoRCG","WPaSaCkZW5JdKmoK","cYBcHSk5WPPBpSkGgCkdsWa","WRmojCkoW7/cUmoM","W5FdPSocW5qO","uwxdOmoJW44poCkCbSk6","umoWW5KHW7DJWPn2WQZdTCoD","sbKrehi","v8oaW5GgW4C","k8kIW4JcS8kC","EvxdOCkTpc4","ySk3ggBdQc8","W4BdGCoHWQmv","WRGgmCk2","WQxcO8ofW4L4m8oAn8kM","hCk0W43cTCkp","aCkSW6dcU8kl","W78DW4bDWRtcHG","gH7dK8oFpZdcKCkaWRCa","W77dO8oTWPO0","FmkynsDK","WO3dNCoGWRRdLG","BaDuBmkwlmoBrG","zSo0pIjd","WORdRCosBmouWPuoiNSExf/cIW","x8kWWR7dQa","W6r2WQddKCkcqCothMarrSoVdCkmtudcNGy","bCk6quxdJa","W6JdQ8oKWR5lfq","xrzVlW","hCkxWQisu8khWPT3Aa","ewKRW5PCW5y","gH7dHmosmYZcT8kyWRu","gCkhvmkqW6xcUCoPta","W7v2pg5bW4hdV1rpW57dVtu","FHqCffNdQHpdJZ7dOCkkWPy","W6BcGmknyJXF","WPxcVmkoW47dIW","rbjV","vCk8WRZdOYTT","p8kcWP7dSCoQkGyxuW","W4yIW4vSWPa","qSkUnuRdNa","WQ81sI8zWOC","jmkAAa","sNFdMSoUW4Wh","W5JdQmoBW7iLtsu","rCouW4fmaSohWR9yqSoXtYi","BLRdRSkRpYycW6eOsIPJ"];return(_0x3054=function(){return e})()}