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