react-native-games 0.3.0 → 0.4.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 (387) hide show
  1. package/README.md +45 -32
  2. package/lib/module/games/balloon-blaster/BalloonBlaster.js +160 -75
  3. package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
  4. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +183 -0
  5. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js.map +1 -0
  6. package/lib/module/games/balloon-blaster/BalloonBlasterService.js +152 -55
  7. package/lib/module/games/balloon-blaster/BalloonBlasterService.js.map +1 -1
  8. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +108 -92
  9. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js.map +1 -1
  10. package/lib/module/games/balloon-blaster/components/BalloonComponent.js +48 -65
  11. package/lib/module/games/balloon-blaster/components/BalloonComponent.js.map +1 -1
  12. package/lib/module/games/balloon-blaster/components/GameArea.js +7 -2
  13. package/lib/module/games/balloon-blaster/components/GameArea.js.map +1 -1
  14. package/lib/module/games/balloon-blaster/components/GameBackground.js +8 -83
  15. package/lib/module/games/balloon-blaster/components/GameBackground.js.map +1 -1
  16. package/lib/module/games/balloon-blaster/components/ParticleSystem.js +9 -6
  17. package/lib/module/games/balloon-blaster/components/ParticleSystem.js.map +1 -1
  18. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +8 -16
  19. package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
  20. package/lib/module/games/balloon-blaster/components/index.js +0 -1
  21. package/lib/module/games/balloon-blaster/components/index.js.map +1 -1
  22. package/lib/module/games/{fruit-slicer/FruitSlicer.js → fruit-ninja/FruitNinja.js} +68 -54
  23. package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -0
  24. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +151 -0
  25. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js.map +1 -0
  26. package/lib/module/games/{fruit-slicer/FruitSlicerService.js → fruit-ninja/FruitNinjaService.js} +13 -12
  27. package/lib/module/games/fruit-ninja/FruitNinjaService.js.map +1 -0
  28. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +166 -0
  29. package/lib/module/games/fruit-ninja/FruitNinjaStore.js.map +1 -0
  30. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/FruitComponent.js +1 -1
  31. package/lib/module/games/fruit-ninja/components/FruitComponent.js.map +1 -0
  32. package/lib/module/games/fruit-ninja/components/GameArea.js.map +1 -0
  33. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/GameBackground.js +198 -169
  34. package/lib/module/games/fruit-ninja/components/GameBackground.js.map +1 -0
  35. package/lib/module/games/fruit-ninja/components/GameOverModal.js.map +1 -0
  36. package/lib/module/games/fruit-ninja/components/ParticleSystem.js.map +1 -0
  37. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/ScoreBoard.js +8 -17
  38. package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -0
  39. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/SliceTrail.js +1 -1
  40. package/lib/module/games/fruit-ninja/components/SliceTrail.js.map +1 -0
  41. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/index.js +0 -1
  42. package/lib/module/games/fruit-ninja/components/index.js.map +1 -0
  43. package/lib/module/games/maze-runner/MazeRunner.js +109 -91
  44. package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
  45. package/lib/module/games/maze-runner/MazeRunnerConstants.js +105 -0
  46. package/lib/module/games/maze-runner/MazeRunnerConstants.js.map +1 -0
  47. package/lib/module/games/maze-runner/MazeRunnerService.js +37 -14
  48. package/lib/module/games/maze-runner/MazeRunnerService.js.map +1 -1
  49. package/lib/module/games/maze-runner/components/EnhancedGameArea.js +5 -9
  50. package/lib/module/games/maze-runner/components/EnhancedGameArea.js.map +1 -1
  51. package/lib/module/games/maze-runner/components/GameBackground.js +151 -192
  52. package/lib/module/games/maze-runner/components/GameBackground.js.map +1 -1
  53. package/lib/module/games/maze-runner/components/ScoreBoard.js +8 -23
  54. package/lib/module/games/maze-runner/components/ScoreBoard.js.map +1 -1
  55. package/lib/module/games/maze-runner/components/index.js +0 -1
  56. package/lib/module/games/maze-runner/components/index.js.map +1 -1
  57. package/lib/module/games/popit-fidget/PopitFidget.js +293 -0
  58. package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -0
  59. package/lib/module/games/popit-fidget/PopitFidgetConstants.js +116 -0
  60. package/lib/module/games/popit-fidget/PopitFidgetConstants.js.map +1 -0
  61. package/lib/module/games/popit-fidget/PopitFidgetService.js +191 -0
  62. package/lib/module/games/popit-fidget/PopitFidgetService.js.map +1 -0
  63. package/lib/module/games/popit-fidget/PopitFidgetStore.js +190 -0
  64. package/lib/module/games/popit-fidget/PopitFidgetStore.js.map +1 -0
  65. package/lib/module/games/popit-fidget/components/BubbleComponent.js +196 -0
  66. package/lib/module/games/popit-fidget/components/BubbleComponent.js.map +1 -0
  67. package/lib/module/games/popit-fidget/components/FidgetGrid.js +165 -0
  68. package/lib/module/games/popit-fidget/components/FidgetGrid.js.map +1 -0
  69. package/lib/module/games/popit-fidget/components/GameBackground.js +174 -0
  70. package/lib/module/games/popit-fidget/components/GameBackground.js.map +1 -0
  71. package/lib/module/games/popit-fidget/components/GameOverModal.js +132 -0
  72. package/lib/module/games/popit-fidget/components/GameOverModal.js.map +1 -0
  73. package/lib/module/games/popit-fidget/components/ParticleSystem.js +89 -0
  74. package/lib/module/games/popit-fidget/components/ParticleSystem.js.map +1 -0
  75. package/lib/module/games/popit-fidget/components/ScoreBoard.js +68 -0
  76. package/lib/module/games/popit-fidget/components/ScoreBoard.js.map +1 -0
  77. package/lib/module/games/popit-fidget/components/index.js +9 -0
  78. package/lib/module/games/popit-fidget/components/index.js.map +1 -0
  79. package/lib/module/games/{space-traveller/SpaceTraveller.js → space-fighter/SpaceFighter.js} +94 -70
  80. package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -0
  81. package/lib/module/games/space-fighter/SpaceFighterConstants.js +110 -0
  82. package/lib/module/games/space-fighter/SpaceFighterConstants.js.map +1 -0
  83. package/lib/module/games/{space-traveller/SpaceTravellerService.js → space-fighter/SpaceFighterService.js} +18 -10
  84. package/lib/module/games/space-fighter/SpaceFighterService.js.map +1 -0
  85. package/lib/module/games/space-fighter/SpaceFighterStore.js +143 -0
  86. package/lib/module/games/space-fighter/SpaceFighterStore.js.map +1 -0
  87. package/lib/module/games/space-fighter/components/AsteroidComponent.js.map +1 -0
  88. package/lib/module/games/space-fighter/components/GameArea.js.map +1 -0
  89. package/lib/module/games/space-fighter/components/GameBackground.js.map +1 -0
  90. package/lib/module/games/space-fighter/components/GameOverModal.js.map +1 -0
  91. package/lib/module/games/space-fighter/components/ParticleComponent.js.map +1 -0
  92. package/lib/module/games/{space-traveller → space-fighter}/components/ScoreBoard.js +11 -19
  93. package/lib/module/games/space-fighter/components/ScoreBoard.js.map +1 -0
  94. package/lib/module/games/space-fighter/components/SettingsModal.js.map +1 -0
  95. package/lib/module/games/space-fighter/components/Spacecraft3D.js.map +1 -0
  96. package/lib/module/games/{space-traveller → space-fighter}/components/SpacecraftPath.js +1 -1
  97. package/lib/module/games/space-fighter/components/SpacecraftPath.js.map +1 -0
  98. package/lib/module/games/{space-traveller → space-fighter}/components/index.js +0 -1
  99. package/lib/module/games/space-fighter/components/index.js.map +1 -0
  100. package/lib/module/games/whack-a-mole/WhackAMole.js +273 -0
  101. package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -0
  102. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +117 -0
  103. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js.map +1 -0
  104. package/lib/module/games/whack-a-mole/WhackAMoleService.js +120 -0
  105. package/lib/module/games/whack-a-mole/WhackAMoleService.js.map +1 -0
  106. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +159 -0
  107. package/lib/module/games/whack-a-mole/WhackAMoleStore.js.map +1 -0
  108. package/lib/module/games/{cat-popper → whack-a-mole}/components/GameBackground.js +31 -91
  109. package/lib/module/games/whack-a-mole/components/GameBackground.js.map +1 -0
  110. package/lib/module/games/whack-a-mole/components/GameGrid.js +97 -0
  111. package/lib/module/games/whack-a-mole/components/GameGrid.js.map +1 -0
  112. package/lib/module/games/{cat-popper → whack-a-mole}/components/GameHole.js +67 -54
  113. package/lib/module/games/whack-a-mole/components/GameHole.js.map +1 -0
  114. package/lib/module/games/{cat-popper → whack-a-mole}/components/GameOverModal.js +2 -2
  115. package/lib/module/games/whack-a-mole/components/GameOverModal.js.map +1 -0
  116. package/lib/module/games/{cat-popper/components/CatCharacter.js → whack-a-mole/components/MoleCharacter.js} +75 -115
  117. package/lib/module/games/whack-a-mole/components/MoleCharacter.js.map +1 -0
  118. package/lib/module/games/{cat-popper → whack-a-mole}/components/ScoreBoard.js +8 -16
  119. package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -0
  120. package/lib/module/games/{cat-popper → whack-a-mole}/components/index.js +1 -2
  121. package/lib/module/games/whack-a-mole/components/index.js.map +1 -0
  122. package/lib/module/index.js +4 -3
  123. package/lib/module/index.js.map +1 -1
  124. package/lib/module/services/GamesConstants.js +36 -506
  125. package/lib/module/services/GamesConstants.js.map +1 -1
  126. package/lib/module/services/GamesService.js +22 -14
  127. package/lib/module/services/GamesService.js.map +1 -1
  128. package/lib/module/services/HapticsService.js +77 -0
  129. package/lib/module/services/HapticsService.js.map +1 -0
  130. package/lib/module/services/SoundsService.js +171 -0
  131. package/lib/module/services/SoundsService.js.map +1 -0
  132. package/lib/module/{games/balloon-blaster/components/GameControls.js → shared/helpers/GameControlButton.js} +39 -58
  133. package/lib/module/shared/helpers/GameControlButton.js.map +1 -0
  134. package/lib/module/shared/helpers/ResponsiveScoreBoard.js +81 -0
  135. package/lib/module/shared/helpers/ResponsiveScoreBoard.js.map +1 -0
  136. package/lib/module/shared/helpers/index.js +5 -0
  137. package/lib/module/shared/helpers/index.js.map +1 -0
  138. package/lib/module/shared/settings/SettingsService.js +18 -12
  139. package/lib/module/shared/settings/SettingsService.js.map +1 -1
  140. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
  141. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts +143 -0
  142. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts.map +1 -0
  143. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts +3 -1
  144. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts.map +1 -1
  145. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts +12 -2
  146. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts.map +1 -1
  147. package/lib/typescript/src/games/balloon-blaster/components/BalloonComponent.d.ts.map +1 -1
  148. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts.map +1 -1
  149. package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts.map +1 -1
  150. package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts.map +1 -1
  151. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
  152. package/lib/typescript/src/games/balloon-blaster/components/index.d.ts +0 -1
  153. package/lib/typescript/src/games/balloon-blaster/components/index.d.ts.map +1 -1
  154. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts +16 -0
  155. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -0
  156. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts +112 -0
  157. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts.map +1 -0
  158. package/lib/typescript/src/games/{fruit-slicer/FruitSlicerService.d.ts → fruit-ninja/FruitNinjaService.d.ts} +4 -4
  159. package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts.map +1 -0
  160. package/lib/typescript/src/games/{fruit-slicer/FruitSlicerStore.d.ts → fruit-ninja/FruitNinjaStore.d.ts} +12 -4
  161. package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts.map +1 -0
  162. package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/FruitComponent.d.ts +1 -1
  163. package/lib/typescript/src/games/fruit-ninja/components/FruitComponent.d.ts.map +1 -0
  164. package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/GameArea.d.ts +1 -1
  165. package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts.map +1 -0
  166. package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts.map +1 -0
  167. package/lib/typescript/src/games/fruit-ninja/components/GameOverModal.d.ts.map +1 -0
  168. package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/ParticleSystem.d.ts +1 -1
  169. package/lib/typescript/src/games/fruit-ninja/components/ParticleSystem.d.ts.map +1 -0
  170. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts.map +1 -0
  171. package/lib/typescript/src/games/fruit-ninja/components/SliceTrail.d.ts.map +1 -0
  172. package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/index.d.ts +0 -1
  173. package/lib/typescript/src/games/fruit-ninja/components/index.d.ts.map +1 -0
  174. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +1 -9
  175. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
  176. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts +41 -0
  177. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts.map +1 -0
  178. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts +4 -2
  179. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts.map +1 -1
  180. package/lib/typescript/src/games/maze-runner/components/EnhancedGameArea.d.ts.map +1 -1
  181. package/lib/typescript/src/games/maze-runner/components/GameBackground.d.ts +2 -1
  182. package/lib/typescript/src/games/maze-runner/components/GameBackground.d.ts.map +1 -1
  183. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts.map +1 -1
  184. package/lib/typescript/src/games/maze-runner/components/index.d.ts +0 -1
  185. package/lib/typescript/src/games/maze-runner/components/index.d.ts.map +1 -1
  186. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts +11 -0
  187. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -0
  188. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts +45 -0
  189. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts.map +1 -0
  190. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts +54 -0
  191. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts.map +1 -0
  192. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +40 -0
  193. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts.map +1 -0
  194. package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts +12 -0
  195. package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts.map +1 -0
  196. package/lib/typescript/src/games/popit-fidget/components/FidgetGrid.d.ts +12 -0
  197. package/lib/typescript/src/games/popit-fidget/components/FidgetGrid.d.ts.map +1 -0
  198. package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts +9 -0
  199. package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts.map +1 -0
  200. package/lib/typescript/src/games/popit-fidget/components/GameOverModal.d.ts +9 -0
  201. package/lib/typescript/src/games/popit-fidget/components/GameOverModal.d.ts.map +1 -0
  202. package/lib/typescript/src/games/popit-fidget/components/ParticleSystem.d.ts +9 -0
  203. package/lib/typescript/src/games/popit-fidget/components/ParticleSystem.d.ts.map +1 -0
  204. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts +8 -0
  205. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts.map +1 -0
  206. package/lib/typescript/src/games/popit-fidget/components/index.d.ts +7 -0
  207. package/lib/typescript/src/games/popit-fidget/components/index.d.ts.map +1 -0
  208. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts +9 -0
  209. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -0
  210. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts +71 -0
  211. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts.map +1 -0
  212. package/lib/typescript/src/games/{space-traveller/SpaceTravellerService.d.ts → space-fighter/SpaceFighterService.d.ts} +7 -4
  213. package/lib/typescript/src/games/space-fighter/SpaceFighterService.d.ts.map +1 -0
  214. package/lib/typescript/src/games/{space-traveller/SpaceTravellerStore.d.ts → space-fighter/SpaceFighterStore.d.ts} +12 -4
  215. package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts.map +1 -0
  216. package/lib/typescript/src/games/{space-traveller → space-fighter}/components/AsteroidComponent.d.ts +1 -1
  217. package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts.map +1 -0
  218. package/lib/typescript/src/games/{space-traveller → space-fighter}/components/GameArea.d.ts +1 -1
  219. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts.map +1 -0
  220. package/lib/typescript/src/games/space-fighter/components/GameBackground.d.ts.map +1 -0
  221. package/lib/typescript/src/games/space-fighter/components/GameOverModal.d.ts.map +1 -0
  222. package/lib/typescript/src/games/{space-traveller → space-fighter}/components/ParticleComponent.d.ts +1 -1
  223. package/lib/typescript/src/games/space-fighter/components/ParticleComponent.d.ts.map +1 -0
  224. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts.map +1 -0
  225. package/lib/typescript/src/games/space-fighter/components/SettingsModal.d.ts.map +1 -0
  226. package/lib/typescript/src/games/{space-traveller → space-fighter}/components/Spacecraft3D.d.ts +1 -1
  227. package/lib/typescript/src/games/space-fighter/components/Spacecraft3D.d.ts.map +1 -0
  228. package/lib/typescript/src/games/space-fighter/components/SpacecraftPath.d.ts.map +1 -0
  229. package/lib/typescript/src/games/{space-traveller → space-fighter}/components/index.d.ts +0 -1
  230. package/lib/typescript/src/games/space-fighter/components/index.d.ts.map +1 -0
  231. package/lib/typescript/src/games/{cat-popper/CatPopper.d.ts → whack-a-mole/WhackAMole.d.ts} +4 -4
  232. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -0
  233. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts +79 -0
  234. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts.map +1 -0
  235. package/lib/typescript/src/games/whack-a-mole/WhackAMoleService.d.ts +33 -0
  236. package/lib/typescript/src/games/whack-a-mole/WhackAMoleService.d.ts.map +1 -0
  237. package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts +41 -0
  238. package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts.map +1 -0
  239. package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts.map +1 -0
  240. package/lib/typescript/src/games/{cat-popper → whack-a-mole}/components/GameGrid.d.ts +2 -2
  241. package/lib/typescript/src/games/whack-a-mole/components/GameGrid.d.ts.map +1 -0
  242. package/lib/typescript/src/games/{cat-popper → whack-a-mole}/components/GameHole.d.ts +3 -2
  243. package/lib/typescript/src/games/whack-a-mole/components/GameHole.d.ts.map +1 -0
  244. package/lib/typescript/src/games/{fruit-slicer → whack-a-mole}/components/GameOverModal.d.ts.map +1 -1
  245. package/lib/typescript/src/games/whack-a-mole/components/MoleCharacter.d.ts +7 -0
  246. package/lib/typescript/src/games/whack-a-mole/components/MoleCharacter.d.ts.map +1 -0
  247. package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts.map +1 -0
  248. package/lib/typescript/src/games/{cat-popper → whack-a-mole}/components/index.d.ts +1 -2
  249. package/lib/typescript/src/games/whack-a-mole/components/index.d.ts.map +1 -0
  250. package/lib/typescript/src/index.d.ts +4 -3
  251. package/lib/typescript/src/index.d.ts.map +1 -1
  252. package/lib/typescript/src/services/GamesConstants.d.ts +30 -318
  253. package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -1
  254. package/lib/typescript/src/services/GamesService.d.ts +1 -0
  255. package/lib/typescript/src/services/GamesService.d.ts.map +1 -1
  256. package/lib/typescript/src/services/HapticsService.d.ts +16 -0
  257. package/lib/typescript/src/services/HapticsService.d.ts.map +1 -0
  258. package/lib/typescript/src/services/SoundsService.d.ts +154 -0
  259. package/lib/typescript/src/services/SoundsService.d.ts.map +1 -0
  260. package/lib/typescript/src/shared/helpers/GameControlButton.d.ts +17 -0
  261. package/lib/typescript/src/shared/helpers/GameControlButton.d.ts.map +1 -0
  262. package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts +42 -0
  263. package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts.map +1 -0
  264. package/lib/typescript/src/shared/helpers/index.d.ts +4 -0
  265. package/lib/typescript/src/shared/helpers/index.d.ts.map +1 -0
  266. package/lib/typescript/src/shared/settings/SettingsService.d.ts +2 -1
  267. package/lib/typescript/src/shared/settings/SettingsService.d.ts.map +1 -1
  268. package/package.json +9 -6
  269. package/lib/module/games/balloon-blaster/components/GameControls.js.map +0 -1
  270. package/lib/module/games/cat-popper/CatPopper.js +0 -230
  271. package/lib/module/games/cat-popper/CatPopper.js.map +0 -1
  272. package/lib/module/games/cat-popper/CatPopperService.js +0 -100
  273. package/lib/module/games/cat-popper/CatPopperService.js.map +0 -1
  274. package/lib/module/games/cat-popper/CatPopperStore.js +0 -113
  275. package/lib/module/games/cat-popper/CatPopperStore.js.map +0 -1
  276. package/lib/module/games/cat-popper/components/CatCharacter.js.map +0 -1
  277. package/lib/module/games/cat-popper/components/GameBackground.js.map +0 -1
  278. package/lib/module/games/cat-popper/components/GameControls.js +0 -230
  279. package/lib/module/games/cat-popper/components/GameControls.js.map +0 -1
  280. package/lib/module/games/cat-popper/components/GameGrid.js +0 -66
  281. package/lib/module/games/cat-popper/components/GameGrid.js.map +0 -1
  282. package/lib/module/games/cat-popper/components/GameHole.js.map +0 -1
  283. package/lib/module/games/cat-popper/components/GameOverModal.js.map +0 -1
  284. package/lib/module/games/cat-popper/components/ScoreBoard.js.map +0 -1
  285. package/lib/module/games/cat-popper/components/index.js.map +0 -1
  286. package/lib/module/games/fruit-slicer/FruitSlicer.js.map +0 -1
  287. package/lib/module/games/fruit-slicer/FruitSlicerService.js.map +0 -1
  288. package/lib/module/games/fruit-slicer/FruitSlicerStore.js +0 -156
  289. package/lib/module/games/fruit-slicer/FruitSlicerStore.js.map +0 -1
  290. package/lib/module/games/fruit-slicer/components/FruitComponent.js.map +0 -1
  291. package/lib/module/games/fruit-slicer/components/GameArea.js.map +0 -1
  292. package/lib/module/games/fruit-slicer/components/GameBackground.js.map +0 -1
  293. package/lib/module/games/fruit-slicer/components/GameControls.js +0 -230
  294. package/lib/module/games/fruit-slicer/components/GameControls.js.map +0 -1
  295. package/lib/module/games/fruit-slicer/components/GameOverModal.js.map +0 -1
  296. package/lib/module/games/fruit-slicer/components/ParticleSystem.js.map +0 -1
  297. package/lib/module/games/fruit-slicer/components/ScoreBoard.js.map +0 -1
  298. package/lib/module/games/fruit-slicer/components/SliceTrail.js.map +0 -1
  299. package/lib/module/games/fruit-slicer/components/index.js.map +0 -1
  300. package/lib/module/games/maze-runner/components/GameControls.js +0 -129
  301. package/lib/module/games/maze-runner/components/GameControls.js.map +0 -1
  302. package/lib/module/games/space-traveller/SpaceTraveller.js.map +0 -1
  303. package/lib/module/games/space-traveller/SpaceTravellerService.js.map +0 -1
  304. package/lib/module/games/space-traveller/SpaceTravellerStore.js +0 -139
  305. package/lib/module/games/space-traveller/SpaceTravellerStore.js.map +0 -1
  306. package/lib/module/games/space-traveller/components/AsteroidComponent.js.map +0 -1
  307. package/lib/module/games/space-traveller/components/GameArea.js.map +0 -1
  308. package/lib/module/games/space-traveller/components/GameBackground.js.map +0 -1
  309. package/lib/module/games/space-traveller/components/GameControls.js +0 -177
  310. package/lib/module/games/space-traveller/components/GameControls.js.map +0 -1
  311. package/lib/module/games/space-traveller/components/GameOverModal.js.map +0 -1
  312. package/lib/module/games/space-traveller/components/ParticleComponent.js.map +0 -1
  313. package/lib/module/games/space-traveller/components/ScoreBoard.js.map +0 -1
  314. package/lib/module/games/space-traveller/components/SettingsModal.js.map +0 -1
  315. package/lib/module/games/space-traveller/components/Spacecraft3D.js.map +0 -1
  316. package/lib/module/games/space-traveller/components/SpacecraftPath.js.map +0 -1
  317. package/lib/module/games/space-traveller/components/index.js.map +0 -1
  318. package/lib/typescript/src/games/balloon-blaster/components/GameControls.d.ts +0 -10
  319. package/lib/typescript/src/games/balloon-blaster/components/GameControls.d.ts.map +0 -1
  320. package/lib/typescript/src/games/cat-popper/CatPopper.d.ts.map +0 -1
  321. package/lib/typescript/src/games/cat-popper/CatPopperService.d.ts +0 -32
  322. package/lib/typescript/src/games/cat-popper/CatPopperService.d.ts.map +0 -1
  323. package/lib/typescript/src/games/cat-popper/CatPopperStore.d.ts +0 -21
  324. package/lib/typescript/src/games/cat-popper/CatPopperStore.d.ts.map +0 -1
  325. package/lib/typescript/src/games/cat-popper/components/CatCharacter.d.ts +0 -7
  326. package/lib/typescript/src/games/cat-popper/components/CatCharacter.d.ts.map +0 -1
  327. package/lib/typescript/src/games/cat-popper/components/GameBackground.d.ts.map +0 -1
  328. package/lib/typescript/src/games/cat-popper/components/GameControls.d.ts +0 -10
  329. package/lib/typescript/src/games/cat-popper/components/GameControls.d.ts.map +0 -1
  330. package/lib/typescript/src/games/cat-popper/components/GameGrid.d.ts.map +0 -1
  331. package/lib/typescript/src/games/cat-popper/components/GameHole.d.ts.map +0 -1
  332. package/lib/typescript/src/games/cat-popper/components/GameOverModal.d.ts.map +0 -1
  333. package/lib/typescript/src/games/cat-popper/components/ScoreBoard.d.ts.map +0 -1
  334. package/lib/typescript/src/games/cat-popper/components/index.d.ts.map +0 -1
  335. package/lib/typescript/src/games/fruit-slicer/FruitSlicer.d.ts +0 -16
  336. package/lib/typescript/src/games/fruit-slicer/FruitSlicer.d.ts.map +0 -1
  337. package/lib/typescript/src/games/fruit-slicer/FruitSlicerService.d.ts.map +0 -1
  338. package/lib/typescript/src/games/fruit-slicer/FruitSlicerStore.d.ts.map +0 -1
  339. package/lib/typescript/src/games/fruit-slicer/components/FruitComponent.d.ts.map +0 -1
  340. package/lib/typescript/src/games/fruit-slicer/components/GameArea.d.ts.map +0 -1
  341. package/lib/typescript/src/games/fruit-slicer/components/GameBackground.d.ts.map +0 -1
  342. package/lib/typescript/src/games/fruit-slicer/components/GameControls.d.ts +0 -10
  343. package/lib/typescript/src/games/fruit-slicer/components/GameControls.d.ts.map +0 -1
  344. package/lib/typescript/src/games/fruit-slicer/components/ParticleSystem.d.ts.map +0 -1
  345. package/lib/typescript/src/games/fruit-slicer/components/ScoreBoard.d.ts.map +0 -1
  346. package/lib/typescript/src/games/fruit-slicer/components/SliceTrail.d.ts.map +0 -1
  347. package/lib/typescript/src/games/fruit-slicer/components/index.d.ts.map +0 -1
  348. package/lib/typescript/src/games/maze-runner/components/GameControls.d.ts +0 -10
  349. package/lib/typescript/src/games/maze-runner/components/GameControls.d.ts.map +0 -1
  350. package/lib/typescript/src/games/space-traveller/SpaceTraveller.d.ts +0 -17
  351. package/lib/typescript/src/games/space-traveller/SpaceTraveller.d.ts.map +0 -1
  352. package/lib/typescript/src/games/space-traveller/SpaceTravellerService.d.ts.map +0 -1
  353. package/lib/typescript/src/games/space-traveller/SpaceTravellerStore.d.ts.map +0 -1
  354. package/lib/typescript/src/games/space-traveller/components/AsteroidComponent.d.ts.map +0 -1
  355. package/lib/typescript/src/games/space-traveller/components/GameArea.d.ts.map +0 -1
  356. package/lib/typescript/src/games/space-traveller/components/GameBackground.d.ts.map +0 -1
  357. package/lib/typescript/src/games/space-traveller/components/GameControls.d.ts +0 -10
  358. package/lib/typescript/src/games/space-traveller/components/GameControls.d.ts.map +0 -1
  359. package/lib/typescript/src/games/space-traveller/components/GameOverModal.d.ts.map +0 -1
  360. package/lib/typescript/src/games/space-traveller/components/ParticleComponent.d.ts.map +0 -1
  361. package/lib/typescript/src/games/space-traveller/components/ScoreBoard.d.ts.map +0 -1
  362. package/lib/typescript/src/games/space-traveller/components/SettingsModal.d.ts.map +0 -1
  363. package/lib/typescript/src/games/space-traveller/components/Spacecraft3D.d.ts.map +0 -1
  364. package/lib/typescript/src/games/space-traveller/components/SpacecraftPath.d.ts.map +0 -1
  365. package/lib/typescript/src/games/space-traveller/components/index.d.ts.map +0 -1
  366. /package/lib/module/games/{fruit-slicer → fruit-ninja}/components/GameArea.js +0 -0
  367. /package/lib/module/games/{fruit-slicer → fruit-ninja}/components/GameOverModal.js +0 -0
  368. /package/lib/module/games/{fruit-slicer → fruit-ninja}/components/ParticleSystem.js +0 -0
  369. /package/lib/module/games/{space-traveller → space-fighter}/components/AsteroidComponent.js +0 -0
  370. /package/lib/module/games/{space-traveller → space-fighter}/components/GameArea.js +0 -0
  371. /package/lib/module/games/{space-traveller → space-fighter}/components/GameBackground.js +0 -0
  372. /package/lib/module/games/{space-traveller → space-fighter}/components/GameOverModal.js +0 -0
  373. /package/lib/module/games/{space-traveller → space-fighter}/components/ParticleComponent.js +0 -0
  374. /package/lib/module/games/{space-traveller → space-fighter}/components/SettingsModal.js +0 -0
  375. /package/lib/module/games/{space-traveller → space-fighter}/components/Spacecraft3D.js +0 -0
  376. /package/lib/typescript/src/games/{cat-popper → fruit-ninja}/components/GameBackground.d.ts +0 -0
  377. /package/lib/typescript/src/games/{cat-popper → fruit-ninja}/components/GameOverModal.d.ts +0 -0
  378. /package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/ScoreBoard.d.ts +0 -0
  379. /package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/SliceTrail.d.ts +0 -0
  380. /package/lib/typescript/src/games/{fruit-slicer → space-fighter}/components/GameBackground.d.ts +0 -0
  381. /package/lib/typescript/src/games/{fruit-slicer → space-fighter}/components/GameOverModal.d.ts +0 -0
  382. /package/lib/typescript/src/games/{cat-popper → space-fighter}/components/ScoreBoard.d.ts +0 -0
  383. /package/lib/typescript/src/games/{space-traveller → space-fighter}/components/SettingsModal.d.ts +0 -0
  384. /package/lib/typescript/src/games/{space-traveller → space-fighter}/components/SpacecraftPath.d.ts +0 -0
  385. /package/lib/typescript/src/games/{space-traveller → whack-a-mole}/components/GameBackground.d.ts +0 -0
  386. /package/lib/typescript/src/games/{space-traveller → whack-a-mole}/components/GameOverModal.d.ts +0 -0
  387. /package/lib/typescript/src/games/{space-traveller → whack-a-mole}/components/ScoreBoard.d.ts +0 -0
@@ -43,31 +43,27 @@ export const GameBackground = ({
43
43
  };
44
44
  });
45
45
 
46
- // Create grass path - UNUSED FUNCTION
47
- // const createGrassPath = (startX: number, segments: number = 8) => {
48
- // const path = Skia.Path.Make();
49
- // const segmentWidth = width / segments;
50
- //
51
- // path.moveTo(startX, height * 0.7);
52
- //
53
- // for (let i = 0; i < segments; i++) {
54
- // const x = startX + i * segmentWidth;
55
- // const y = height * 0.7 + Math.sin(i * 0.5) * 10;
56
- // const controlX = x + segmentWidth / 2;
57
- // const controlY = y + Math.cos(i * 0.3) * 8;
58
- //
59
- // path.quadTo(controlX, controlY, x + segmentWidth, y);
60
- // }
61
- //
62
- // path.lineTo(width, height);
63
- // path.lineTo(startX, height);
64
- // path.close();
65
- //
66
- // return path;
67
- // };
68
-
69
- // const grassPath = createGrassPath(0); // Unused variable
46
+ // Create grass path - matches Whack-A-Mole positioning
47
+ const buttonAreaHeight = 250; // Height for button area
48
+ const grassStartY = height - buttonAreaHeight;
49
+ const createGrassPath = (startX, segments = 8) => {
50
+ const path = Skia.Path.Make();
51
+ const segmentWidth = width / segments;
52
+ path.moveTo(startX, grassStartY);
53
+ for (let i = 0; i < segments; i++) {
54
+ const x = startX + i * segmentWidth;
55
+ const y = grassStartY + Math.sin(i * 0.5) * 8; // Reduced wave amplitude
56
+ const controlX = x + segmentWidth / 2;
57
+ const controlY = y + Math.cos(i * 0.3) * 6; // Reduced wave amplitude
70
58
 
59
+ path.quadTo(controlX, controlY, x + segmentWidth, y);
60
+ }
61
+ path.lineTo(width, height);
62
+ path.lineTo(startX, height);
63
+ path.close();
64
+ return path;
65
+ };
66
+ const grassPath = createGrassPath(0);
71
67
  return /*#__PURE__*/_jsxs(Animated.View, {
72
68
  style: [{
73
69
  flex: 1
@@ -86,11 +82,21 @@ export const GameBackground = ({
86
82
  x: 0,
87
83
  y: 0,
88
84
  width: width,
89
- height: height,
85
+ height: grassStartY,
90
86
  children: /*#__PURE__*/_jsx(LinearGradient, {
91
87
  start: vec(0, 0),
88
+ end: vec(0, grassStartY),
89
+ colors: ['#87CEEB', '#98D8E8', '#B0E0E6']
90
+ })
91
+ }), /*#__PURE__*/_jsx(Rect, {
92
+ x: 0,
93
+ y: grassStartY,
94
+ width: width,
95
+ height: buttonAreaHeight,
96
+ children: /*#__PURE__*/_jsx(LinearGradient, {
97
+ start: vec(0, grassStartY),
92
98
  end: vec(0, height),
93
- colors: ['#87CEEB', '#98D8E8', '#B0E0E6', '#90EE90', '#228B22']
99
+ colors: ['#8B4513', '#A0522D', '#654321']
94
100
  })
95
101
  }), /*#__PURE__*/_jsxs(Group, {
96
102
  transform: [{
@@ -423,19 +429,30 @@ export const GameBackground = ({
423
429
  })
424
430
  })]
425
431
  })]
432
+ }), /*#__PURE__*/_jsxs(Path, {
433
+ path: grassPath,
434
+ children: [/*#__PURE__*/_jsx(LinearGradient, {
435
+ start: vec(0, grassStartY - 20),
436
+ end: vec(0, grassStartY + 20),
437
+ colors: ['#32CD32', '#228B22', '#006400']
438
+ }), /*#__PURE__*/_jsx(Shadow, {
439
+ dx: 0,
440
+ dy: -2,
441
+ blur: 4,
442
+ color: "rgba(0,0,0,0.2)"
443
+ })]
426
444
  }), Array.from({
427
445
  length: 50
428
446
  }, (_, i) => {
429
- const x = width / 50 * i + i % 3 * 5; // Static positioning
430
- const grassHeight = 12 + i % 4 * 6; // Deterministic height
431
- const swayAmount = 0; // No sway animation
432
- const grassType = i % 10 / 10; // Deterministic grass type
433
-
447
+ const x = width / 50 * i + Math.random() * 15;
448
+ const grassHeight = 12 + Math.random() * 18;
449
+ const swayAmount = 0; // No animation
450
+ const grassType = Math.random();
434
451
  const bladePath = Skia.Path.Make();
435
- bladePath.moveTo(x, height * 0.7);
452
+ bladePath.moveTo(x, grassStartY);
436
453
  if (grassType < 0.4) {
437
454
  // Tall thin grass with slight curve
438
- bladePath.quadTo(x + swayAmount + 1, height * 0.7 - grassHeight * 0.6, x + swayAmount + i % 2, height * 0.7 - grassHeight);
455
+ bladePath.quadTo(x + swayAmount + 1, grassStartY - grassHeight * 0.6, x + swayAmount + Math.random() * 2 - 1, grassStartY - grassHeight);
439
456
  return /*#__PURE__*/_jsx(Path, {
440
457
  path: bladePath,
441
458
  style: "stroke",
@@ -445,7 +462,7 @@ export const GameBackground = ({
445
462
  }, `grass-${i}`);
446
463
  } else if (grassType < 0.7) {
447
464
  // Medium curved grass
448
- bladePath.quadTo(x + swayAmount + 2, height * 0.7 - grassHeight * 0.4, x + swayAmount + 3, height * 0.7 - grassHeight);
465
+ bladePath.quadTo(x + swayAmount + 2, grassStartY - grassHeight * 0.4, x + swayAmount + 3, grassStartY - grassHeight);
449
466
  return /*#__PURE__*/_jsx(Path, {
450
467
  path: bladePath,
451
468
  style: "stroke",
@@ -456,7 +473,7 @@ export const GameBackground = ({
456
473
  } else {
457
474
  // Short wide grass with multiple segments
458
475
  const midHeight = grassHeight * 0.5;
459
- bladePath.quadTo(x + swayAmount + 1, height * 0.7 - midHeight, x + swayAmount + 2, height * 0.7 - grassHeight);
476
+ bladePath.quadTo(x + swayAmount + 1, grassStartY - midHeight, x + swayAmount + 2, grassStartY - grassHeight);
460
477
  return /*#__PURE__*/_jsxs(Group, {
461
478
  children: [/*#__PURE__*/_jsx(Path, {
462
479
  path: bladePath,
@@ -464,9 +481,9 @@ export const GameBackground = ({
464
481
  strokeWidth: 2.5,
465
482
  color: "#166534",
466
483
  opacity: 0.6 + i % 5 * 0.08
467
- }), i % 4 === 0 && /*#__PURE__*/_jsx(Circle, {
484
+ }), Math.random() < 0.3 && /*#__PURE__*/_jsx(Circle, {
468
485
  cx: x + swayAmount + 2,
469
- cy: height * 0.7 - grassHeight,
486
+ cy: grassStartY - grassHeight,
470
487
  r: 0.8,
471
488
  color: "#22c55e",
472
489
  opacity: 0.8
@@ -476,17 +493,16 @@ export const GameBackground = ({
476
493
  }), Array.from({
477
494
  length: 30
478
495
  }, (_, i) => {
479
- const x = width / 30 * i + i % 2 * 10; // Static positioning
480
- const y = height * 0.68 + i % 3 * (height * 0.01); // Static positioning
481
- const grassClusterHeight = 8 + i % 3 * 2; // Deterministic height
482
-
496
+ const x = Math.random() * width;
497
+ const y = grassStartY - 10 + Math.random() * 20; // Position around grass line
498
+ const grassClusterHeight = 8 + Math.random() * 6;
483
499
  const clusterPath = Skia.Path.Make();
484
500
  clusterPath.moveTo(x, y);
485
- clusterPath.lineTo(x + i % 2, y - grassClusterHeight);
501
+ clusterPath.lineTo(x + Math.random() * 2 - 1, y - grassClusterHeight);
486
502
  clusterPath.moveTo(x + 2, y);
487
- clusterPath.lineTo(x + 2 + i % 2, y - grassClusterHeight * 0.8);
503
+ clusterPath.lineTo(x + 2 + Math.random() * 2 - 1, y - grassClusterHeight * 0.8);
488
504
  clusterPath.moveTo(x + 4, y);
489
- clusterPath.lineTo(x + 4 + i % 2, y - grassClusterHeight * 0.6);
505
+ clusterPath.lineTo(x + 4 + Math.random() * 2 - 1, y - grassClusterHeight * 0.6);
490
506
  return /*#__PURE__*/_jsx(Path, {
491
507
  path: clusterPath,
492
508
  style: "stroke",
@@ -494,13 +510,26 @@ export const GameBackground = ({
494
510
  color: "#22c55e",
495
511
  opacity: 0.4
496
512
  }, `cluster-${i}`);
513
+ }), Array.from({
514
+ length: 15
515
+ }, (_, i) => {
516
+ const x = Math.random() * width;
517
+ const y = grassStartY + 20 + Math.random() * (buttonAreaHeight - 40); // Keep within button area
518
+ const size = 2 + Math.random() * 3;
519
+ return /*#__PURE__*/_jsx(Circle, {
520
+ cx: x,
521
+ cy: y,
522
+ r: size,
523
+ color: "#8B4513",
524
+ opacity: 0.6
525
+ }, i);
497
526
  }), /*#__PURE__*/_jsxs(Group, {
498
527
  children: [/*#__PURE__*/_jsxs(Group, {
499
528
  children: [/*#__PURE__*/_jsxs(Rect, {
500
529
  x: width * 0.05,
501
- y: height * 0.45,
530
+ y: grassStartY - 150,
502
531
  width: 20,
503
- height: height * 0.25,
532
+ height: 150,
504
533
  children: [/*#__PURE__*/_jsx(LinearGradient, {
505
534
  start: vec(0, 0),
506
535
  end: vec(20, 0),
@@ -513,35 +542,35 @@ export const GameBackground = ({
513
542
  })]
514
543
  }), /*#__PURE__*/_jsx(Rect, {
515
544
  x: width * 0.05 + 3,
516
- y: height * 0.50,
545
+ y: grassStartY - 120,
517
546
  width: 1,
518
- height: height * 0.15,
547
+ height: 90,
519
548
  color: "#5D4037",
520
549
  opacity: 0.8
521
550
  }), /*#__PURE__*/_jsx(Rect, {
522
551
  x: width * 0.05 + 7,
523
- y: height * 0.48,
552
+ y: grassStartY - 140,
524
553
  width: 1.5,
525
- height: height * 0.18,
554
+ height: 110,
526
555
  color: "#4A2C2A",
527
556
  opacity: 0.7
528
557
  }), /*#__PURE__*/_jsx(Rect, {
529
558
  x: width * 0.05 + 12,
530
- y: height * 0.52,
559
+ y: grassStartY - 100,
531
560
  width: 1,
532
- height: height * 0.12,
561
+ height: 70,
533
562
  color: "#5D4037",
534
563
  opacity: 0.6
535
564
  }), /*#__PURE__*/_jsx(Rect, {
536
565
  x: width * 0.05 + 16,
537
- y: height * 0.49,
566
+ y: grassStartY - 130,
538
567
  width: 1.5,
539
- height: height * 0.16,
568
+ height: 100,
540
569
  color: "#4A2C2A",
541
570
  opacity: 0.8
542
571
  }), /*#__PURE__*/_jsx(Rect, {
543
572
  x: width * 0.05 + 18,
544
- y: height * 0.48,
573
+ y: grassStartY - 130,
545
574
  width: 12,
546
575
  height: 4,
547
576
  color: "#8B4513",
@@ -554,7 +583,7 @@ export const GameBackground = ({
554
583
  })
555
584
  }), /*#__PURE__*/_jsx(Rect, {
556
585
  x: width * 0.05 - 2,
557
- y: height * 0.52,
586
+ y: grassStartY - 100,
558
587
  width: 10,
559
588
  height: 3,
560
589
  color: "#A0522D",
@@ -567,7 +596,7 @@ export const GameBackground = ({
567
596
  })
568
597
  }), /*#__PURE__*/_jsx(Rect, {
569
598
  x: width * 0.05 + 15,
570
- y: height * 0.42,
599
+ y: grassStartY - 160,
571
600
  width: 8,
572
601
  height: 3,
573
602
  color: "#8B4513",
@@ -580,7 +609,7 @@ export const GameBackground = ({
580
609
  })
581
610
  }), /*#__PURE__*/_jsx(Circle, {
582
611
  cx: width * 0.05 + 10,
583
- cy: height * 0.45,
612
+ cy: grassStartY - 150,
584
613
  r: 38,
585
614
  color: "#1B5E20",
586
615
  opacity: 0.9,
@@ -592,91 +621,91 @@ export const GameBackground = ({
592
621
  })
593
622
  }), /*#__PURE__*/_jsx(Circle, {
594
623
  cx: width * 0.05 + 18,
595
- cy: height * 0.42,
624
+ cy: grassStartY - 180,
596
625
  r: 32,
597
626
  color: "#2E7D32",
598
627
  opacity: 0.8
599
628
  }), /*#__PURE__*/_jsx(Circle, {
600
629
  cx: width * 0.05 + 25,
601
- cy: height * 0.46,
630
+ cy: grassStartY - 140,
602
631
  r: 28,
603
632
  color: "#388E3C",
604
633
  opacity: 0.7
605
634
  }), /*#__PURE__*/_jsx(Circle, {
606
635
  cx: width * 0.05 + 2,
607
- cy: height * 0.48,
636
+ cy: grassStartY - 120,
608
637
  r: 30,
609
638
  color: "#2E7D32",
610
639
  opacity: 0.75
611
640
  }), /*#__PURE__*/_jsx(Circle, {
612
641
  cx: width * 0.05 - 5,
613
- cy: height * 0.44,
642
+ cy: grassStartY - 160,
614
643
  r: 25,
615
644
  color: "#1B5E20",
616
645
  opacity: 0.8
617
646
  }), /*#__PURE__*/_jsx(Circle, {
618
647
  cx: width * 0.05 + 8,
619
- cy: height * 0.38,
648
+ cy: grassStartY - 200,
620
649
  r: 26,
621
650
  color: "#4CAF50",
622
651
  opacity: 0.6
623
652
  }), /*#__PURE__*/_jsx(Circle, {
624
653
  cx: width * 0.05 + 20,
625
- cy: height * 0.38,
654
+ cy: grassStartY - 200,
626
655
  r: 22,
627
656
  color: "#66BB6A",
628
657
  opacity: 0.5
629
658
  }), /*#__PURE__*/_jsx(Circle, {
630
659
  cx: width * 0.05 + 12,
631
- cy: height * 0.43,
660
+ cy: grassStartY - 170,
632
661
  r: 20,
633
662
  color: "#388E3C",
634
663
  opacity: 0.9
635
664
  }), /*#__PURE__*/_jsx(Circle, {
636
665
  cx: width * 0.05 + 6,
637
- cy: height * 0.46,
666
+ cy: grassStartY - 140,
638
667
  r: 18,
639
668
  color: "#2E7D32",
640
669
  opacity: 0.8
641
670
  }), /*#__PURE__*/_jsx(Circle, {
642
671
  cx: width * 0.05 + 15,
643
- cy: height * 0.35,
672
+ cy: grassStartY - 220,
644
673
  r: 15,
645
674
  color: "#81C784",
646
675
  opacity: 0.6
647
676
  }), /*#__PURE__*/_jsx(Circle, {
648
677
  cx: width * 0.05 + 3,
649
- cy: height * 0.37,
678
+ cy: grassStartY - 210,
650
679
  r: 12,
651
680
  color: "#A5D6A7",
652
681
  opacity: 0.5
653
682
  }), /*#__PURE__*/_jsx(Circle, {
654
683
  cx: width * 0.05 + 28,
655
- cy: height * 0.41,
684
+ cy: grassStartY - 180,
656
685
  r: 14,
657
686
  color: "#81C784",
658
687
  opacity: 0.6
659
688
  }), /*#__PURE__*/_jsx(Circle, {
660
689
  cx: width * 0.05 - 8,
661
- cy: height * 0.41,
690
+ cy: grassStartY - 180,
662
691
  r: 16,
663
692
  color: "#66BB6A",
664
693
  opacity: 0.7
665
694
  }), /*#__PURE__*/_jsx(Circle, {
666
695
  cx: width * 0.05 + 5,
667
- cy: height * 0.36,
696
+ cy: grassStartY - 230,
668
697
  r: 10,
669
698
  color: "#C8E6C9",
670
699
  opacity: 0.7
671
700
  }), /*#__PURE__*/_jsx(Circle, {
672
701
  cx: width * 0.05 + 18,
673
- cy: height * 0.34,
702
+ cy: grassStartY - 240,
674
703
  r: 8,
675
704
  color: "#E8F5E8",
676
705
  opacity: 0.6
677
706
  }), /*#__PURE__*/_jsx(Circle, {
678
707
  cx: width * 0.05 + 22,
679
- cy: height * 0.39,
708
+ cy: grassStartY - 190,
680
709
  r: 6,
681
710
  color: "#C8E6C9",
682
711
  opacity: 0.8
@@ -684,9 +713,9 @@ export const GameBackground = ({
684
713
  }), /*#__PURE__*/_jsxs(Group, {
685
714
  children: [/*#__PURE__*/_jsxs(Rect, {
686
715
  x: width * 0.88,
687
- y: height * 0.35,
716
+ y: grassStartY - 200,
688
717
  width: 18,
689
- height: height * 0.35,
718
+ height: 200,
690
719
  children: [/*#__PURE__*/_jsx(LinearGradient, {
691
720
  start: vec(0, 0),
692
721
  end: vec(18, 0),
@@ -699,35 +728,35 @@ export const GameBackground = ({
699
728
  })]
700
729
  }), /*#__PURE__*/_jsx(Rect, {
701
730
  x: width * 0.88 + 2,
702
- y: height * 0.38,
731
+ y: grassStartY - 170,
703
732
  width: 1,
704
- height: height * 0.25,
733
+ height: 150,
705
734
  color: "#3E2723",
706
735
  opacity: 0.9
707
736
  }), /*#__PURE__*/_jsx(Rect, {
708
737
  x: width * 0.88 + 6,
709
- y: height * 0.36,
738
+ y: grassStartY - 190,
710
739
  width: 1.5,
711
- height: height * 0.28,
740
+ height: 170,
712
741
  color: "#2E1A16",
713
742
  opacity: 0.8
714
743
  }), /*#__PURE__*/_jsx(Rect, {
715
744
  x: width * 0.88 + 11,
716
- y: height * 0.39,
745
+ y: grassStartY - 160,
717
746
  width: 1,
718
- height: height * 0.22,
747
+ height: 130,
719
748
  color: "#3E2723",
720
749
  opacity: 0.7
721
750
  }), /*#__PURE__*/_jsx(Rect, {
722
751
  x: width * 0.88 + 14,
723
- y: height * 0.37,
752
+ y: grassStartY - 180,
724
753
  width: 1.5,
725
- height: height * 0.26,
754
+ height: 160,
726
755
  color: "#2E1A16",
727
756
  opacity: 0.9
728
757
  }), /*#__PURE__*/_jsx(Circle, {
729
758
  cx: width * 0.88 + 9,
730
- cy: height * 0.48,
759
+ cy: grassStartY - 120,
731
760
  r: 35,
732
761
  color: "#0D4F0C",
733
762
  opacity: 0.95,
@@ -739,109 +768,109 @@ export const GameBackground = ({
739
768
  })
740
769
  }), /*#__PURE__*/_jsx(Circle, {
741
770
  cx: width * 0.88 + 5,
742
- cy: height * 0.50,
771
+ cy: grassStartY - 100,
743
772
  r: 30,
744
773
  color: "#1B5E20",
745
774
  opacity: 0.9
746
775
  }), /*#__PURE__*/_jsx(Circle, {
747
776
  cx: width * 0.88 + 13,
748
- cy: height * 0.49,
777
+ cy: grassStartY - 110,
749
778
  r: 28,
750
779
  color: "#2E7D32",
751
780
  opacity: 0.8
752
781
  }), /*#__PURE__*/_jsx(Circle, {
753
782
  cx: width * 0.88 + 9,
754
- cy: height * 0.42,
783
+ cy: grassStartY - 180,
755
784
  r: 32,
756
785
  color: "#1B5E20",
757
786
  opacity: 0.9
758
787
  }), /*#__PURE__*/_jsx(Circle, {
759
788
  cx: width * 0.88 + 6,
760
- cy: height * 0.43,
789
+ cy: grassStartY - 170,
761
790
  r: 26,
762
791
  color: "#2E7D32",
763
792
  opacity: 0.85
764
793
  }), /*#__PURE__*/_jsx(Circle, {
765
794
  cx: width * 0.88 + 12,
766
- cy: height * 0.41,
795
+ cy: grassStartY - 190,
767
796
  r: 24,
768
797
  color: "#388E3C",
769
798
  opacity: 0.8
770
799
  }), /*#__PURE__*/_jsx(Circle, {
771
800
  cx: width * 0.88 + 9,
772
- cy: height * 0.36,
801
+ cy: grassStartY - 240,
773
802
  r: 28,
774
803
  color: "#2E7D32",
775
804
  opacity: 0.9
776
805
  }), /*#__PURE__*/_jsx(Circle, {
777
806
  cx: width * 0.88 + 7,
778
- cy: height * 0.37,
807
+ cy: grassStartY - 230,
779
808
  r: 22,
780
809
  color: "#388E3C",
781
810
  opacity: 0.85
782
811
  }), /*#__PURE__*/_jsx(Circle, {
783
812
  cx: width * 0.88 + 11,
784
- cy: height * 0.35,
813
+ cy: grassStartY - 250,
785
814
  r: 20,
786
815
  color: "#4CAF50",
787
816
  opacity: 0.8
788
817
  }), /*#__PURE__*/_jsx(Circle, {
789
818
  cx: width * 0.88 + 9,
790
- cy: height * 0.30,
819
+ cy: grassStartY - 300,
791
820
  r: 22,
792
821
  color: "#388E3C",
793
822
  opacity: 0.9
794
823
  }), /*#__PURE__*/_jsx(Circle, {
795
824
  cx: width * 0.88 + 8,
796
- cy: height * 0.31,
825
+ cy: grassStartY - 290,
797
826
  r: 18,
798
827
  color: "#4CAF50",
799
828
  opacity: 0.8
800
829
  }), /*#__PURE__*/_jsx(Circle, {
801
830
  cx: width * 0.88 + 10,
802
- cy: height * 0.29,
831
+ cy: grassStartY - 310,
803
832
  r: 15,
804
833
  color: "#66BB6A",
805
834
  opacity: 0.7
806
835
  }), /*#__PURE__*/_jsx(Circle, {
807
836
  cx: width * 0.88 + 4,
808
- cy: height * 0.45,
837
+ cy: grassStartY - 150,
809
838
  r: 8,
810
839
  color: "#0D4F0C",
811
840
  opacity: 0.8
812
841
  }), /*#__PURE__*/_jsx(Circle, {
813
842
  cx: width * 0.88 + 14,
814
- cy: height * 0.43,
843
+ cy: grassStartY - 170,
815
844
  r: 6,
816
845
  color: "#1B5E20",
817
846
  opacity: 0.9
818
847
  }), /*#__PURE__*/_jsx(Circle, {
819
848
  cx: width * 0.88 + 3,
820
- cy: height * 0.38,
849
+ cy: grassStartY - 220,
821
850
  r: 5,
822
851
  color: "#0D4F0C",
823
852
  opacity: 0.7
824
853
  }), /*#__PURE__*/_jsx(Circle, {
825
854
  cx: width * 0.88 + 15,
826
- cy: height * 0.36,
855
+ cy: grassStartY - 240,
827
856
  r: 7,
828
857
  color: "#2E7D32",
829
858
  opacity: 0.8
830
859
  }), /*#__PURE__*/_jsx(Circle, {
831
860
  cx: width * 0.88 + 12,
832
- cy: height * 0.32,
861
+ cy: grassStartY - 280,
833
862
  r: 8,
834
863
  color: "#81C784",
835
864
  opacity: 0.6
836
865
  }), /*#__PURE__*/_jsx(Circle, {
837
866
  cx: width * 0.88 + 11,
838
- cy: height * 0.28,
867
+ cy: grassStartY - 320,
839
868
  r: 6,
840
869
  color: "#A5D6A7",
841
870
  opacity: 0.5
842
871
  }), /*#__PURE__*/_jsx(Circle, {
843
872
  cx: width * 0.88 + 13,
844
- cy: height * 0.39,
873
+ cy: grassStartY - 190,
845
874
  r: 5,
846
875
  color: "#C8E6C9",
847
876
  opacity: 0.7
@@ -851,7 +880,7 @@ export const GameBackground = ({
851
880
  children: [/*#__PURE__*/_jsxs(Group, {
852
881
  children: [/*#__PURE__*/_jsx(Circle, {
853
882
  cx: width * 0.15,
854
- cy: height * 0.64,
883
+ cy: grassStartY - 60,
855
884
  r: 26,
856
885
  color: "#1B5E20",
857
886
  opacity: 0.95,
@@ -863,85 +892,85 @@ export const GameBackground = ({
863
892
  })
864
893
  }), /*#__PURE__*/_jsx(Circle, {
865
894
  cx: width * 0.18,
866
- cy: height * 0.61,
895
+ cy: grassStartY - 90,
867
896
  r: 22,
868
897
  color: "#2E7D32",
869
898
  opacity: 0.9
870
899
  }), /*#__PURE__*/_jsx(Circle, {
871
900
  cx: width * 0.21,
872
- cy: height * 0.63,
901
+ cy: grassStartY - 70,
873
902
  r: 18,
874
903
  color: "#388E3C",
875
904
  opacity: 0.8
876
905
  }), /*#__PURE__*/_jsx(Circle, {
877
906
  cx: width * 0.12,
878
- cy: height * 0.62,
907
+ cy: grassStartY - 80,
879
908
  r: 20,
880
909
  color: "#2E7D32",
881
910
  opacity: 0.85
882
911
  }), /*#__PURE__*/_jsx(Circle, {
883
912
  cx: width * 0.09,
884
- cy: height * 0.65,
913
+ cy: grassStartY - 50,
885
914
  r: 16,
886
915
  color: "#1B5E20",
887
916
  opacity: 0.9
888
917
  }), /*#__PURE__*/_jsx(Circle, {
889
918
  cx: width * 0.16,
890
- cy: height * 0.58,
919
+ cy: grassStartY - 100,
891
920
  r: 19,
892
921
  color: "#4CAF50",
893
922
  opacity: 0.7
894
923
  }), /*#__PURE__*/_jsx(Circle, {
895
924
  cx: width * 0.19,
896
- cy: height * 0.59,
925
+ cy: grassStartY - 95,
897
926
  r: 15,
898
927
  color: "#66BB6A",
899
928
  opacity: 0.6
900
929
  }), /*#__PURE__*/_jsx(Circle, {
901
930
  cx: width * 0.15,
902
- cy: height * 0.61,
931
+ cy: grassStartY - 90,
903
932
  r: 14,
904
933
  color: "#388E3C",
905
934
  opacity: 0.9
906
935
  }), /*#__PURE__*/_jsx(Circle, {
907
936
  cx: width * 0.17,
908
- cy: height * 0.63,
937
+ cy: grassStartY - 70,
909
938
  r: 12,
910
939
  color: "#2E7D32",
911
940
  opacity: 0.8
912
941
  }), /*#__PURE__*/_jsx(Circle, {
913
942
  cx: width * 0.13,
914
- cy: height * 0.59,
943
+ cy: grassStartY - 95,
915
944
  r: 10,
916
945
  color: "#81C784",
917
946
  opacity: 0.7
918
947
  }), /*#__PURE__*/_jsx(Circle, {
919
948
  cx: width * 0.20,
920
- cy: height * 0.60,
949
+ cy: grassStartY - 85,
921
950
  r: 8,
922
951
  color: "#A5D6A7",
923
952
  opacity: 0.6
924
953
  }), /*#__PURE__*/_jsx(Circle, {
925
954
  cx: width * 0.11,
926
- cy: height * 0.63,
955
+ cy: grassStartY - 70,
927
956
  r: 9,
928
957
  color: "#66BB6A",
929
958
  opacity: 0.8
930
959
  }), /*#__PURE__*/_jsx(Circle, {
931
960
  cx: width * 0.22,
932
- cy: height * 0.62,
961
+ cy: grassStartY - 80,
933
962
  r: 7,
934
963
  color: "#81C784",
935
964
  opacity: 0.7
936
965
  }), /*#__PURE__*/_jsx(Circle, {
937
966
  cx: width * 0.16,
938
- cy: height * 0.57,
967
+ cy: grassStartY - 105,
939
968
  r: 6,
940
969
  color: "#C8E6C9",
941
970
  opacity: 0.8
942
971
  }), /*#__PURE__*/_jsx(Circle, {
943
972
  cx: width * 0.19,
944
- cy: height * 0.58,
973
+ cy: grassStartY - 100,
945
974
  r: 4,
946
975
  color: "#E8F5E8",
947
976
  opacity: 0.7
@@ -949,7 +978,7 @@ export const GameBackground = ({
949
978
  }), /*#__PURE__*/_jsxs(Group, {
950
979
  children: [/*#__PURE__*/_jsx(Circle, {
951
980
  cx: width * 0.35,
952
- cy: height * 0.66,
981
+ cy: grassStartY - 40,
953
982
  r: 21,
954
983
  color: "#1B5E20",
955
984
  opacity: 0.9,
@@ -961,37 +990,37 @@ export const GameBackground = ({
961
990
  })
962
991
  }), /*#__PURE__*/_jsx(Circle, {
963
992
  cx: width * 0.37,
964
- cy: height * 0.64,
993
+ cy: grassStartY - 60,
965
994
  r: 17,
966
995
  color: "#2E7D32",
967
996
  opacity: 0.85
968
997
  }), /*#__PURE__*/_jsx(Circle, {
969
998
  cx: width * 0.33,
970
- cy: height * 0.67,
999
+ cy: grassStartY - 30,
971
1000
  r: 15,
972
1001
  color: "#388E3C",
973
1002
  opacity: 0.8
974
1003
  }), /*#__PURE__*/_jsx(Circle, {
975
1004
  cx: width * 0.36,
976
- cy: height * 0.62,
1005
+ cy: grassStartY - 80,
977
1006
  r: 13,
978
1007
  color: "#4CAF50",
979
1008
  opacity: 0.7
980
1009
  }), /*#__PURE__*/_jsx(Circle, {
981
1010
  cx: width * 0.32,
982
- cy: height * 0.64,
1011
+ cy: grassStartY - 60,
983
1012
  r: 10,
984
1013
  color: "#66BB6A",
985
1014
  opacity: 0.8
986
1015
  }), /*#__PURE__*/_jsx(Circle, {
987
1016
  cx: width * 0.38,
988
- cy: height * 0.65,
1017
+ cy: grassStartY - 50,
989
1018
  r: 8,
990
1019
  color: "#81C784",
991
1020
  opacity: 0.7
992
1021
  }), /*#__PURE__*/_jsx(Circle, {
993
1022
  cx: width * 0.34,
994
- cy: height * 0.61,
1023
+ cy: grassStartY - 90,
995
1024
  r: 5,
996
1025
  color: "#A5D6A7",
997
1026
  opacity: 0.8
@@ -999,7 +1028,7 @@ export const GameBackground = ({
999
1028
  }), /*#__PURE__*/_jsxs(Group, {
1000
1029
  children: [/*#__PURE__*/_jsx(Circle, {
1001
1030
  cx: width * 0.52,
1002
- cy: height * 0.65,
1031
+ cy: grassStartY - 45,
1003
1032
  r: 25,
1004
1033
  color: "#1B5E20",
1005
1034
  opacity: 0.95,
@@ -1011,61 +1040,61 @@ export const GameBackground = ({
1011
1040
  })
1012
1041
  }), /*#__PURE__*/_jsx(Circle, {
1013
1042
  cx: width * 0.55,
1014
- cy: height * 0.62,
1043
+ cy: grassStartY - 75,
1015
1044
  r: 21,
1016
1045
  color: "#2E7D32",
1017
1046
  opacity: 0.9
1018
1047
  }), /*#__PURE__*/_jsx(Circle, {
1019
1048
  cx: width * 0.49,
1020
- cy: height * 0.66,
1049
+ cy: grassStartY - 35,
1021
1050
  r: 19,
1022
1051
  color: "#388E3C",
1023
1052
  opacity: 0.85
1024
1053
  }), /*#__PURE__*/_jsx(Circle, {
1025
1054
  cx: width * 0.54,
1026
- cy: height * 0.59,
1055
+ cy: grassStartY - 100,
1027
1056
  r: 16,
1028
1057
  color: "#4CAF50",
1029
1058
  opacity: 0.8
1030
1059
  }), /*#__PURE__*/_jsx(Circle, {
1031
1060
  cx: width * 0.50,
1032
- cy: height * 0.63,
1061
+ cy: grassStartY - 70,
1033
1062
  r: 14,
1034
1063
  color: "#66BB6A",
1035
1064
  opacity: 0.75
1036
1065
  }), /*#__PURE__*/_jsx(Circle, {
1037
1066
  cx: width * 0.47,
1038
- cy: height * 0.61,
1067
+ cy: grassStartY - 90,
1039
1068
  r: 11,
1040
1069
  color: "#81C784",
1041
1070
  opacity: 0.7
1042
1071
  }), /*#__PURE__*/_jsx(Circle, {
1043
1072
  cx: width * 0.56,
1044
- cy: height * 0.64,
1073
+ cy: grassStartY - 55,
1045
1074
  r: 9,
1046
1075
  color: "#A5D6A7",
1047
1076
  opacity: 0.6
1048
1077
  }), /*#__PURE__*/_jsx(Circle, {
1049
1078
  cx: width * 0.51,
1050
- cy: height * 0.60,
1079
+ cy: grassStartY - 85,
1051
1080
  r: 4,
1052
1081
  color: "#FF69B4",
1053
1082
  opacity: 0.9
1054
1083
  }), /*#__PURE__*/_jsx(Circle, {
1055
1084
  cx: width * 0.54,
1056
- cy: height * 0.62,
1085
+ cy: grassStartY - 75,
1057
1086
  r: 3.5,
1058
1087
  color: "#FF6B6B",
1059
1088
  opacity: 0.85
1060
1089
  }), /*#__PURE__*/_jsx(Circle, {
1061
1090
  cx: width * 0.49,
1062
- cy: height * 0.64,
1091
+ cy: grassStartY - 55,
1063
1092
  r: 3,
1064
1093
  color: "#FF1744",
1065
1094
  opacity: 0.8
1066
1095
  }), /*#__PURE__*/_jsx(Circle, {
1067
1096
  cx: width * 0.52,
1068
- cy: height * 0.58,
1097
+ cy: grassStartY - 105,
1069
1098
  r: 6,
1070
1099
  color: "#C8E6C9",
1071
1100
  opacity: 0.8
@@ -1073,7 +1102,7 @@ export const GameBackground = ({
1073
1102
  }), /*#__PURE__*/_jsxs(Group, {
1074
1103
  children: [/*#__PURE__*/_jsx(Circle, {
1075
1104
  cx: width * 0.72,
1076
- cy: height * 0.66,
1105
+ cy: grassStartY - 35,
1077
1106
  r: 28,
1078
1107
  color: "#0D4F0C",
1079
1108
  opacity: 0.95,
@@ -1085,73 +1114,73 @@ export const GameBackground = ({
1085
1114
  })
1086
1115
  }), /*#__PURE__*/_jsx(Circle, {
1087
1116
  cx: width * 0.75,
1088
- cy: height * 0.63,
1117
+ cy: grassStartY - 70,
1089
1118
  r: 24,
1090
1119
  color: "#1B5E20",
1091
1120
  opacity: 0.9
1092
1121
  }), /*#__PURE__*/_jsx(Circle, {
1093
1122
  cx: width * 0.69,
1094
- cy: height * 0.67,
1123
+ cy: grassStartY - 25,
1095
1124
  r: 22,
1096
1125
  color: "#2E7D32",
1097
1126
  opacity: 0.85
1098
1127
  }), /*#__PURE__*/_jsx(Circle, {
1099
1128
  cx: width * 0.74,
1100
- cy: height * 0.60,
1129
+ cy: grassStartY - 85,
1101
1130
  r: 19,
1102
1131
  color: "#388E3C",
1103
1132
  opacity: 0.8
1104
1133
  }), /*#__PURE__*/_jsx(Circle, {
1105
1134
  cx: width * 0.68,
1106
- cy: height * 0.64,
1135
+ cy: grassStartY - 55,
1107
1136
  r: 17,
1108
1137
  color: "#4CAF50",
1109
1138
  opacity: 0.75
1110
1139
  }), /*#__PURE__*/_jsx(Circle, {
1111
1140
  cx: width * 0.77,
1112
- cy: height * 0.65,
1141
+ cy: grassStartY - 45,
1113
1142
  r: 14,
1114
1143
  color: "#66BB6A",
1115
1144
  opacity: 0.7
1116
1145
  }), /*#__PURE__*/_jsx(Circle, {
1117
1146
  cx: width * 0.66,
1118
- cy: height * 0.62,
1147
+ cy: grassStartY - 75,
1119
1148
  r: 12,
1120
1149
  color: "#81C784",
1121
1150
  opacity: 0.65
1122
1151
  }), /*#__PURE__*/_jsx(Circle, {
1123
1152
  cx: width * 0.71,
1124
- cy: height * 0.58,
1153
+ cy: grassStartY - 95,
1125
1154
  r: 10,
1126
1155
  color: "#A5D6A7",
1127
1156
  opacity: 0.6
1128
1157
  }), /*#__PURE__*/_jsx(Circle, {
1129
1158
  cx: width * 0.73,
1130
- cy: height * 0.59,
1159
+ cy: grassStartY - 100,
1131
1160
  r: 3,
1132
1161
  color: "#9C27B0",
1133
1162
  opacity: 0.9
1134
1163
  }), /*#__PURE__*/_jsx(Circle, {
1135
1164
  cx: width * 0.70,
1136
- cy: height * 0.61,
1165
+ cy: grassStartY - 90,
1137
1166
  r: 2.5,
1138
1167
  color: "#673AB7",
1139
1168
  opacity: 0.85
1140
1169
  }), /*#__PURE__*/_jsx(Circle, {
1141
1170
  cx: width * 0.76,
1142
- cy: height * 0.64,
1171
+ cy: grassStartY - 55,
1143
1172
  r: 3.5,
1144
1173
  color: "#FF9800",
1145
1174
  opacity: 0.8
1146
1175
  }), /*#__PURE__*/_jsx(Circle, {
1147
1176
  cx: width * 0.73,
1148
- cy: height * 0.57,
1177
+ cy: grassStartY - 110,
1149
1178
  r: 7,
1150
1179
  color: "#C8E6C9",
1151
1180
  opacity: 0.8
1152
1181
  }), /*#__PURE__*/_jsx(Circle, {
1153
1182
  cx: width * 0.75,
1154
- cy: height * 0.61,
1183
+ cy: grassStartY - 90,
1155
1184
  r: 5,
1156
1185
  color: "#E8F5E8",
1157
1186
  opacity: 0.7
@@ -1159,7 +1188,7 @@ export const GameBackground = ({
1159
1188
  }), /*#__PURE__*/_jsxs(Group, {
1160
1189
  children: [/*#__PURE__*/_jsx(Circle, {
1161
1190
  cx: width * 0.25,
1162
- cy: height * 0.68,
1191
+ cy: grassStartY - 15,
1163
1192
  r: 15,
1164
1193
  color: "#1B5E20",
1165
1194
  opacity: 0.8,
@@ -1171,25 +1200,25 @@ export const GameBackground = ({
1171
1200
  })
1172
1201
  }), /*#__PURE__*/_jsx(Circle, {
1173
1202
  cx: width * 0.27,
1174
- cy: height * 0.66,
1203
+ cy: grassStartY - 35,
1175
1204
  r: 12,
1176
1205
  color: "#2E7D32",
1177
1206
  opacity: 0.75
1178
1207
  }), /*#__PURE__*/_jsx(Circle, {
1179
1208
  cx: width * 0.23,
1180
- cy: height * 0.69,
1209
+ cy: grassStartY - 5,
1181
1210
  r: 10,
1182
1211
  color: "#388E3C",
1183
1212
  opacity: 0.7
1184
1213
  }), /*#__PURE__*/_jsx(Circle, {
1185
1214
  cx: width * 0.26,
1186
- cy: height * 0.65,
1215
+ cy: grassStartY - 45,
1187
1216
  r: 7,
1188
1217
  color: "#66BB6A",
1189
1218
  opacity: 0.6
1190
1219
  }), /*#__PURE__*/_jsx(Circle, {
1191
1220
  cx: width * 0.65,
1192
- cy: height * 0.69,
1221
+ cy: grassStartY - 5,
1193
1222
  r: 13,
1194
1223
  color: "#2E7D32",
1195
1224
  opacity: 0.8,
@@ -1201,19 +1230,19 @@ export const GameBackground = ({
1201
1230
  })
1202
1231
  }), /*#__PURE__*/_jsx(Circle, {
1203
1232
  cx: width * 0.67,
1204
- cy: height * 0.67,
1233
+ cy: grassStartY - 25,
1205
1234
  r: 10,
1206
1235
  color: "#388E3C",
1207
1236
  opacity: 0.75
1208
1237
  }), /*#__PURE__*/_jsx(Circle, {
1209
1238
  cx: width * 0.63,
1210
- cy: height * 0.70,
1239
+ cy: grassStartY + 5,
1211
1240
  r: 8,
1212
1241
  color: "#4CAF50",
1213
1242
  opacity: 0.7
1214
1243
  }), /*#__PURE__*/_jsx(Circle, {
1215
1244
  cx: width * 0.66,
1216
- cy: height * 0.66,
1245
+ cy: grassStartY - 35,
1217
1246
  r: 5,
1218
1247
  color: "#81C784",
1219
1248
  opacity: 0.6
@@ -1225,45 +1254,45 @@ export const GameBackground = ({
1225
1254
  }, (_, i) => {
1226
1255
  const positions = [{
1227
1256
  x: width * 0.20,
1228
- y: height * 0.69
1257
+ y: grassStartY - 5
1229
1258
  }, {
1230
1259
  x: width * 0.28,
1231
- y: height * 0.71
1260
+ y: grassStartY + 15
1232
1261
  }, {
1233
1262
  x: width * 0.38,
1234
- y: height * 0.68
1263
+ y: grassStartY - 15
1235
1264
  }, {
1236
1265
  x: width * 0.45,
1237
- y: height * 0.70
1266
+ y: grassStartY + 5
1238
1267
  }, {
1239
1268
  x: width * 0.58,
1240
- y: height * 0.69
1269
+ y: grassStartY - 5
1241
1270
  }, {
1242
1271
  x: width * 0.63,
1243
- y: height * 0.71
1272
+ y: grassStartY + 15
1244
1273
  }, {
1245
1274
  x: width * 0.77,
1246
- y: height * 0.68
1275
+ y: grassStartY - 15
1247
1276
  }, {
1248
1277
  x: width * 0.82,
1249
- y: height * 0.70
1278
+ y: grassStartY + 5
1250
1279
  }, {
1251
1280
  x: width * 0.22,
1252
- y: height * 0.73
1281
+ y: grassStartY + 25
1253
1282
  }, {
1254
1283
  x: width * 0.48,
1255
- y: height * 0.72
1284
+ y: grassStartY + 20
1256
1285
  }, {
1257
1286
  x: width * 0.68,
1258
- y: height * 0.73
1287
+ y: grassStartY + 25
1259
1288
  }, {
1260
1289
  x: width * 0.85,
1261
- y: height * 0.72
1290
+ y: grassStartY + 20
1262
1291
  }];
1263
1292
  const colors = ['#FF6B6B', '#FF69B4', '#9370DB', '#4169E1', '#FF8C00', '#32CD32'];
1264
1293
  const pos = positions[i] || {
1265
1294
  x: Math.random() * width,
1266
- y: height * 0.70
1295
+ y: grassStartY + 5
1267
1296
  };
1268
1297
  const color = colors[i % colors.length];
1269
1298
  const size = 3 + Math.random() * 2;