react-native-games 1.0.0 → 1.2.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 (212) hide show
  1. package/README.md +80 -368
  2. package/lib/module/games/balloon-blaster/BalloonBlaster.js +1 -167
  3. package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
  4. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +1 -182
  5. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js.map +1 -1
  6. package/lib/module/games/balloon-blaster/BalloonBlasterService.js +1 -318
  7. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +1 -183
  8. package/lib/module/games/balloon-blaster/components/BalloonComponent.js +1 -237
  9. package/lib/module/games/balloon-blaster/components/GameArea.js +1 -156
  10. package/lib/module/games/balloon-blaster/components/GameBackground.js +1 -476
  11. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +1 -112
  12. package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
  13. package/lib/module/games/balloon-blaster/components/index.js +1 -7
  14. package/lib/module/games/candy-crush/CandyCrush.js +1 -131
  15. package/lib/module/games/candy-crush/CandyCrush.js.map +1 -1
  16. package/lib/module/games/candy-crush/CandyCrushConstants.js +1 -125
  17. package/lib/module/games/candy-crush/CandyCrushConstants.js.map +1 -1
  18. package/lib/module/games/candy-crush/CandyCrushService.js +1 -370
  19. package/lib/module/games/candy-crush/CandyCrushStore.js +1 -303
  20. package/lib/module/games/candy-crush/components/CandyItem.js +1 -191
  21. package/lib/module/games/candy-crush/components/GameBackground.js +1 -85
  22. package/lib/module/games/candy-crush/components/GameGrid.js +1 -314
  23. package/lib/module/games/candy-crush/components/ScoreBoard.js +1 -79
  24. package/lib/module/games/candy-crush/components/index.js +1 -7
  25. package/lib/module/games/candy-crush/index.js +1 -6
  26. package/lib/module/games/colors-sort/ColorsSort.js +1 -143
  27. package/lib/module/games/colors-sort/ColorsSort.js.map +1 -1
  28. package/lib/module/games/colors-sort/ColorsSortConstants.js +1 -72
  29. package/lib/module/games/colors-sort/ColorsSortConstants.js.map +1 -1
  30. package/lib/module/games/colors-sort/ColorsSortService.js +1 -255
  31. package/lib/module/games/colors-sort/ColorsSortStore.js +1 -257
  32. package/lib/module/games/colors-sort/ColorsSortStore.js.map +1 -1
  33. package/lib/module/games/colors-sort/components/ColorContainer.js +1 -140
  34. package/lib/module/games/colors-sort/components/GameBackground.js +1 -135
  35. package/lib/module/games/colors-sort/components/ScoreBoard.js +1 -70
  36. package/lib/module/games/colors-sort/components/index.js +1 -6
  37. package/lib/module/games/dino-jump/DinoJump.js +1 -209
  38. package/lib/module/games/dino-jump/DinoJump.js.map +1 -1
  39. package/lib/module/games/dino-jump/DinoJumpConstants.js +1 -189
  40. package/lib/module/games/dino-jump/DinoJumpConstants.js.map +1 -1
  41. package/lib/module/games/dino-jump/DinoJumpService.js +1 -270
  42. package/lib/module/games/dino-jump/DinoJumpStore.js +1 -381
  43. package/lib/module/games/dino-jump/components/DinoSprite.js +1 -418
  44. package/lib/module/games/dino-jump/components/DinoSprite.js.map +1 -1
  45. package/lib/module/games/dino-jump/components/GameArea.js +1 -68
  46. package/lib/module/games/dino-jump/components/GameBackground.js +1 -444
  47. package/lib/module/games/dino-jump/components/ObstacleSprite.js +1 -306
  48. package/lib/module/games/dino-jump/components/ScoreBoard.js +1 -105
  49. package/lib/module/games/dino-jump/components/ScoreBoard.js.map +1 -1
  50. package/lib/module/games/dino-jump/components/StarSprite.js +1 -45
  51. package/lib/module/games/dino-jump/components/index.js +1 -9
  52. package/lib/module/games/flappy-bird/FlappyBird.js +1 -126
  53. package/lib/module/games/flappy-bird/FlappyBird.js.map +1 -1
  54. package/lib/module/games/flappy-bird/FlappyBirdConstants.js +1 -90
  55. package/lib/module/games/flappy-bird/FlappyBirdConstants.js.map +1 -1
  56. package/lib/module/games/flappy-bird/FlappyBirdStore.js +1 -300
  57. package/lib/module/games/flappy-bird/components/Bird.js +1 -87
  58. package/lib/module/games/flappy-bird/components/GameArea.js +1 -87
  59. package/lib/module/games/flappy-bird/components/GameBackground.js +1 -79
  60. package/lib/module/games/flappy-bird/components/Pipes.js +1 -172
  61. package/lib/module/games/flappy-bird/components/ScoreBoard.js +1 -73
  62. package/lib/module/games/flappy-bird/components/index.js +1 -8
  63. package/lib/module/games/fruit-merger/FruitMerger.js +1 -120
  64. package/lib/module/games/fruit-merger/FruitMerger.js.map +1 -1
  65. package/lib/module/games/fruit-merger/FruitMergerConstants.js +1 -119
  66. package/lib/module/games/fruit-merger/FruitMergerConstants.js.map +1 -1
  67. package/lib/module/games/fruit-merger/FruitMergerService.js +1 -13
  68. package/lib/module/games/fruit-merger/FruitMergerStore.js +1 -315
  69. package/lib/module/games/fruit-merger/components/FruitItem.js +1 -102
  70. package/lib/module/games/fruit-merger/components/GameArea.js +1 -103
  71. package/lib/module/games/fruit-merger/components/GameBackground.js +1 -498
  72. package/lib/module/games/fruit-merger/components/ScoreBoard.js +1 -58
  73. package/lib/module/games/fruit-merger/components/index.js +1 -7
  74. package/lib/module/games/fruit-ninja/FruitNinja.js +1 -134
  75. package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -1
  76. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +1 -148
  77. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js.map +1 -1
  78. package/lib/module/games/fruit-ninja/FruitNinjaService.js +1 -311
  79. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +1 -191
  80. package/lib/module/games/fruit-ninja/FruitNinjaStore.js.map +1 -1
  81. package/lib/module/games/fruit-ninja/components/FruitComponent.js +1 -99
  82. package/lib/module/games/fruit-ninja/components/GameArea.js +1 -215
  83. package/lib/module/games/fruit-ninja/components/GameBackground.js +1 -1267
  84. package/lib/module/games/fruit-ninja/components/ScoreBoard.js +1 -92
  85. package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -1
  86. package/lib/module/games/fruit-ninja/components/index.js +1 -7
  87. package/lib/module/games/game-2048/Game2048.js +1 -149
  88. package/lib/module/games/game-2048/Game2048.js.map +1 -1
  89. package/lib/module/games/game-2048/Game2048Constants.js +1 -263
  90. package/lib/module/games/game-2048/Game2048Constants.js.map +1 -1
  91. package/lib/module/games/game-2048/Game2048Service.js +1 -457
  92. package/lib/module/games/game-2048/Game2048Store.js +1 -236
  93. package/lib/module/games/game-2048/components/GameBackground.js +1 -247
  94. package/lib/module/games/game-2048/components/GameGrid.js +1 -139
  95. package/lib/module/games/game-2048/components/GameTile.js +1 -72
  96. package/lib/module/games/game-2048/components/ScoreBoard.js +1 -52
  97. package/lib/module/games/game-2048/components/index.js +1 -7
  98. package/lib/module/games/maze-runner/MazeRunner.js +1 -267
  99. package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
  100. package/lib/module/games/maze-runner/MazeRunnerConstants.js +1 -100
  101. package/lib/module/games/maze-runner/MazeRunnerConstants.js.map +1 -1
  102. package/lib/module/games/maze-runner/MazeRunnerService.js +1 -586
  103. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js +1 -150
  104. package/lib/module/games/maze-runner/components/EnhancedGameArea.js +1 -370
  105. package/lib/module/games/maze-runner/components/GameBackground.js +1 -175
  106. package/lib/module/games/maze-runner/components/ScoreBoard.js +1 -61
  107. package/lib/module/games/maze-runner/components/SkiaPipeComponent.js +1 -209
  108. package/lib/module/games/maze-runner/components/StaticGameBackground.js +1 -169
  109. package/lib/module/games/maze-runner/components/WallComponent.js +1 -91
  110. package/lib/module/games/maze-runner/components/index.js +1 -8
  111. package/lib/module/games/popit-fidget/PopitFidget.js +1 -285
  112. package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -1
  113. package/lib/module/games/popit-fidget/PopitFidgetConstants.js +1 -113
  114. package/lib/module/games/popit-fidget/PopitFidgetConstants.js.map +1 -1
  115. package/lib/module/games/popit-fidget/PopitFidgetService.js +1 -132
  116. package/lib/module/games/popit-fidget/PopitFidgetStore.js +1 -125
  117. package/lib/module/games/popit-fidget/components/BubbleComponent.js +1 -198
  118. package/lib/module/games/popit-fidget/components/FidgetGrid.js +1 -165
  119. package/lib/module/games/popit-fidget/components/GameBackground.js +1 -177
  120. package/lib/module/games/popit-fidget/components/ScoreBoard.js +1 -61
  121. package/lib/module/games/popit-fidget/components/index.js +1 -7
  122. package/lib/module/games/sliding-numbers/SlidingNumbers.js +1 -159
  123. package/lib/module/games/sliding-numbers/SlidingNumbers.js.map +1 -1
  124. package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js +1 -207
  125. package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js.map +1 -1
  126. package/lib/module/games/sliding-numbers/SlidingNumbersService.js +1 -248
  127. package/lib/module/games/sliding-numbers/SlidingNumbersStore.js +1 -274
  128. package/lib/module/games/sliding-numbers/components/GameBackground.js +1 -259
  129. package/lib/module/games/sliding-numbers/components/NumbersGrid.js +1 -174
  130. package/lib/module/games/sliding-numbers/components/NumbersTile.js +1 -116
  131. package/lib/module/games/sliding-numbers/components/ScoreBoard.js +1 -64
  132. package/lib/module/games/sliding-numbers/components/index.js +1 -7
  133. package/lib/module/games/snake/Snake.js +1 -189
  134. package/lib/module/games/snake/Snake.js.map +1 -1
  135. package/lib/module/games/snake/SnakeConstants.js +1 -138
  136. package/lib/module/games/snake/SnakeConstants.js.map +1 -1
  137. package/lib/module/games/snake/SnakeService.js +1 -148
  138. package/lib/module/games/snake/SnakeStore.js +1 -182
  139. package/lib/module/games/snake/components/GameBackground.js +1 -221
  140. package/lib/module/games/snake/components/GameGrid.js +1 -153
  141. package/lib/module/games/snake/components/ScoreBoard.js +1 -51
  142. package/lib/module/games/snake/components/index.js +1 -6
  143. package/lib/module/games/snake/index.js +1 -6
  144. package/lib/module/games/space-fighter/SpaceFighter.js +1 -165
  145. package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -1
  146. package/lib/module/games/space-fighter/SpaceFighterConstants.js +1 -108
  147. package/lib/module/games/space-fighter/SpaceFighterConstants.js.map +1 -1
  148. package/lib/module/games/space-fighter/SpaceFighterService.js +1 -326
  149. package/lib/module/games/space-fighter/SpaceFighterStore.js +1 -209
  150. package/lib/module/games/space-fighter/components/AsteroidComponent.js +1 -113
  151. package/lib/module/games/space-fighter/components/GameArea.js +1 -289
  152. package/lib/module/games/space-fighter/components/GameBackground.js +1 -239
  153. package/lib/module/games/space-fighter/components/ScoreBoard.js +1 -136
  154. package/lib/module/games/space-fighter/components/Spacecraft3D.js +1 -202
  155. package/lib/module/games/space-fighter/components/SpacecraftPath.js +1 -52
  156. package/lib/module/games/space-fighter/components/index.js +1 -9
  157. package/lib/module/games/whack-a-mole/WhackAMole.js +1 -270
  158. package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -1
  159. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +1 -115
  160. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js.map +1 -1
  161. package/lib/module/games/whack-a-mole/WhackAMoleService.js +1 -120
  162. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +1 -172
  163. package/lib/module/games/whack-a-mole/components/GameBackground.js +1 -477
  164. package/lib/module/games/whack-a-mole/components/GameGrid.js +1 -97
  165. package/lib/module/games/whack-a-mole/components/GameHole.js +1 -196
  166. package/lib/module/games/whack-a-mole/components/MoleCharacter.js +1 -241
  167. package/lib/module/games/whack-a-mole/components/ScoreBoard.js +1 -67
  168. package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -1
  169. package/lib/module/games/whack-a-mole/components/index.js +1 -8
  170. package/lib/module/helpers/AnimationFrame.js +1 -120
  171. package/lib/module/helpers/AnimationTracker.js +1 -89
  172. package/lib/module/helpers/ErrorHandler.js +1 -269
  173. package/lib/module/helpers/GameControlButton.js +1 -219
  174. package/lib/module/helpers/GameOverModal.js +1 -144
  175. package/lib/module/helpers/GameOverModal.js.map +1 -1
  176. package/lib/module/helpers/GameSettingsModal.js +1 -287
  177. package/lib/module/helpers/ParticleBlast.js +1 -134
  178. package/lib/module/helpers/ScoreBoardContainer.js +1 -34
  179. package/lib/module/helpers/index.js +1 -12
  180. package/lib/module/index.js +1 -22
  181. package/lib/module/services/GamesConstants.js +1 -178
  182. package/lib/module/services/GamesService.js +1 -112
  183. package/lib/module/services/GamesService.js.map +1 -1
  184. package/lib/module/services/HapticsService.js +1 -77
  185. package/lib/module/services/SoundsService.js +1 -302
  186. package/lib/module/services/UtilsService.js +1 -32
  187. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
  188. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts +1 -1
  189. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
  190. package/lib/typescript/src/games/candy-crush/CandyCrushConstants.d.ts +7 -7
  191. package/lib/typescript/src/games/colors-sort/ColorsSort.d.ts.map +1 -1
  192. package/lib/typescript/src/games/colors-sort/ColorsSortStore.d.ts.map +1 -1
  193. package/lib/typescript/src/games/dino-jump/DinoJump.d.ts.map +1 -1
  194. package/lib/typescript/src/games/dino-jump/components/DinoSprite.d.ts.map +1 -1
  195. package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts.map +1 -1
  196. package/lib/typescript/src/games/flappy-bird/FlappyBirdConstants.d.ts.map +1 -1
  197. package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts.map +1 -1
  198. package/lib/typescript/src/games/fruit-merger/FruitMergerConstants.d.ts.map +1 -1
  199. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -1
  200. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts.map +1 -1
  201. package/lib/typescript/src/games/game-2048/Game2048.d.ts.map +1 -1
  202. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
  203. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -1
  204. package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts.map +1 -1
  205. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -1
  206. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -1
  207. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts +1 -1
  208. package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts.map +1 -1
  209. package/lib/typescript/src/helpers/GameOverModal.d.ts +3 -0
  210. package/lib/typescript/src/helpers/GameOverModal.d.ts.map +1 -1
  211. package/lib/typescript/src/services/GamesConstants.d.ts +7 -7
  212. package/package.json +2 -2
@@ -1,91 +1 @@
1
- "use strict";
2
-
3
- import React from 'react';
4
- import { Canvas, Rect, LinearGradient, vec, Shadow, RoundedRect } from '@shopify/react-native-skia';
5
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
- // Memoized WallComponent to prevent unnecessary re-renders
7
- export const WallComponent = /*#__PURE__*/React.memo(({
8
- walls,
9
- width,
10
- height
11
- }) => {
12
- // Group walls by type and position for better joining
13
- const renderWall = (wall, index) => {
14
- const cornerRadius = 2; // Small radius for slightly rounded corners
15
- const shadowOffset = 1.5;
16
- return /*#__PURE__*/_jsxs(React.Fragment, {
17
- children: [/*#__PURE__*/_jsxs(RoundedRect, {
18
- x: wall.x,
19
- y: wall.y,
20
- width: wall.width,
21
- height: wall.height,
22
- r: cornerRadius,
23
- children: [/*#__PURE__*/_jsx(LinearGradient, {
24
- start: vec(0, 0),
25
- end: wall.type === 'horizontal' ? vec(0, wall.height) : vec(wall.width, 0),
26
- colors: ['#654321',
27
- // Dark brown
28
- '#8B4513',
29
- // Saddle brown
30
- '#A0522D',
31
- // Sienna
32
- '#CD853F',
33
- // Peru
34
- '#D2691E' // Chocolate
35
- ]
36
- }), /*#__PURE__*/_jsx(Shadow, {
37
- dx: shadowOffset,
38
- dy: shadowOffset,
39
- blur: 3,
40
- color: "rgba(0, 0, 0, 0.4)"
41
- })]
42
- }), /*#__PURE__*/_jsx(RoundedRect, {
43
- x: wall.x + 1,
44
- y: wall.y + 1,
45
- width: Math.max(0, wall.width - 2),
46
- height: Math.max(0, wall.height - 2),
47
- r: Math.max(0, cornerRadius - 1),
48
- children: /*#__PURE__*/_jsx(LinearGradient, {
49
- start: vec(0, 0),
50
- end: wall.type === 'horizontal' ? vec(0, wall.height - 2) : vec(wall.width - 2, 0),
51
- colors: ['rgba(255, 255, 255, 0.3)',
52
- // Light highlight
53
- 'rgba(255, 255, 255, 0.1)',
54
- // Subtle highlight
55
- 'rgba(0, 0, 0, 0.1)',
56
- // Subtle shadow
57
- 'rgba(0, 0, 0, 0.2)' // Darker shadow
58
- ]
59
- })
60
- }), wall.type === 'horizontal' && /*#__PURE__*/_jsx(Rect, {
61
- x: wall.x,
62
- y: wall.y,
63
- width: wall.width,
64
- height: 1,
65
- children: /*#__PURE__*/_jsx(LinearGradient, {
66
- start: vec(0, 0),
67
- end: vec(wall.width, 0),
68
- colors: ['rgba(255, 255, 255, 0.6)', 'rgba(255, 255, 255, 0.3)']
69
- })
70
- }), wall.type === 'vertical' && /*#__PURE__*/_jsx(Rect, {
71
- x: wall.x,
72
- y: wall.y,
73
- width: 1,
74
- height: wall.height,
75
- children: /*#__PURE__*/_jsx(LinearGradient, {
76
- start: vec(0, 0),
77
- end: vec(0, wall.height),
78
- colors: ['rgba(255, 255, 255, 0.6)', 'rgba(255, 255, 255, 0.3)']
79
- })
80
- })]
81
- }, index);
82
- };
83
- return /*#__PURE__*/_jsx(Canvas, {
84
- style: {
85
- width,
86
- height
87
- },
88
- children: walls.map((wall, index) => renderWall(wall, index))
89
- });
90
- });
91
- //# sourceMappingURL=WallComponent.js.map
1
+ "use strict";import React from 'react';import{Canvas,Rect,LinearGradient,vec,Shadow,RoundedRect}from '@shopify/react-native-skia';import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";export const WallComponent = React.memo(({walls,width,height})=>{const renderWall =(wall,index)=>{const cornerRadius = 2;const shadowOffset = 1.5;return _jsxs(React.Fragment,{children:[_jsxs(RoundedRect,{x:wall.x,y:wall.y,width:wall.width,height:wall.height,r:cornerRadius,children:[_jsx(LinearGradient,{start:vec(0,0),end:wall.type === 'horizontal' ? vec(0,wall.height):vec(wall.width,0),colors:['#654321','#8B4513','#A0522D','#CD853F','#D2691E' ]}),_jsx(Shadow,{dx:shadowOffset,dy:shadowOffset,blur:3,color:"rgba(0,0,0,0.4)"})]}),_jsx(RoundedRect,{x:wall.x + 1,y:wall.y + 1,width:Math.max(0,wall.width - 2),height:Math.max(0,wall.height - 2),r:Math.max(0,cornerRadius - 1),children:_jsx(LinearGradient,{start:vec(0,0),end:wall.type === 'horizontal' ? vec(0,wall.height - 2):vec(wall.width - 2,0),colors:['rgba(255,255,255,0.3)','rgba(255,255,255,0.1)','rgba(0,0,0,0.1)','rgba(0,0,0,0.2)' ]})}),wall.type === 'horizontal' && _jsx(Rect,{x:wall.x,y:wall.y,width:wall.width,height:1,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(wall.width,0),colors:['rgba(255,255,255,0.6)','rgba(255,255,255,0.3)']})}),wall.type === 'vertical' && _jsx(Rect,{x:wall.x,y:wall.y,width:1,height:wall.height,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(0,wall.height),colors:['rgba(255,255,255,0.6)','rgba(255,255,255,0.3)']})})]},index);};return _jsx(Canvas,{style:{width,height},children:walls.map((wall,index)=> renderWall(wall,index))});});
@@ -1,8 +1 @@
1
- "use strict";
2
-
3
- export { EnhancedBallComponent } from "./EnhancedBallComponent.js";
4
- export { WallComponent } from "./WallComponent.js";
5
- export { EnhancedGameArea } from "./EnhancedGameArea.js";
6
- export { GameBackground } from "./GameBackground.js";
7
- export { ScoreBoard } from "./ScoreBoard.js";
8
- //# sourceMappingURL=index.js.map
1
+ "use strict";export{EnhancedBallComponent}from "./EnhancedBallComponent.js";export{WallComponent}from "./WallComponent.js";export{EnhancedGameArea}from "./EnhancedGameArea.js";export{GameBackground}from "./GameBackground.js";export{ScoreBoard}from "./ScoreBoard.js";
@@ -1,285 +1 @@
1
- "use strict";
2
-
3
- import React, { useEffect, useRef, useCallback, useMemo } from 'react';
4
- import { View, StyleSheet, Dimensions } from 'react-native';
5
- import { GestureHandlerRootView } from 'react-native-gesture-handler';
6
- import { usePopitFidgetStore } from "./PopitFidgetStore.js";
7
- import { PopitFidgetService } from "./PopitFidgetService.js";
8
- import { GAME_IDS, DEFAULT_GAME_SETTINGS } from "../../services/UtilsService.js";
9
- import { playSound, GAME_SOUNDS } from "../../services/SoundsService.js";
10
- import { playHaptic, HapticType } from "../../services/HapticsService.js";
11
- import { GameBackground, FidgetGrid as FidgetGridComponent, ScoreBoard } from "./components/index.js";
12
- import { GameControlButton, GameOverModal } from "../../helpers/index.js";
13
- import { GameSettingsModal } from "../../helpers/index.js";
14
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
- const {
16
- width,
17
- height
18
- } = Dimensions.get('window');
19
- const PopitFidget = ({
20
- settings,
21
- onSettingsChange
22
- }) => {
23
- // Use selective subscriptions to prevent unnecessary re-renders
24
- const fidgetGrid = usePopitFidgetStore(state => state.fidgetGrid);
25
- const timeElapsed = usePopitFidgetStore(state => state.timeElapsed);
26
- const isPlaying = usePopitFidgetStore(state => state.isPlaying);
27
- const gameOver = usePopitFidgetStore(state => state.gameOver);
28
- const gameWon = usePopitFidgetStore(state => state.gameWon);
29
-
30
- // Get store actions (these don't cause re-renders)
31
- const startGame = usePopitFidgetStore(state => state.startGame);
32
- const resetGame = usePopitFidgetStore(state => state.resetGame);
33
- const setFidgetGrid = usePopitFidgetStore(state => state.setFidgetGrid);
34
- const popBubble = usePopitFidgetStore(state => state.popBubble);
35
- const incrementTime = usePopitFidgetStore(state => state.incrementTime);
36
- const serviceRef = useRef(null);
37
-
38
- // Use settings from props
39
- const {
40
- difficulty = 'medium',
41
- enableSounds = true,
42
- enableHaptics = true
43
- } = settings || {};
44
-
45
- // Initialize service and generate initial fidget grid
46
- useEffect(() => {
47
- if (!serviceRef.current) {
48
- serviceRef.current = new PopitFidgetService();
49
- }
50
-
51
- // Generate initial fidget grid so it shows before game starts
52
- if (serviceRef.current && !fidgetGrid) {
53
- const grid = serviceRef.current.generateFidgetGrid(difficulty);
54
- setFidgetGrid(grid);
55
- }
56
- }, [fidgetGrid, setFidgetGrid, difficulty]);
57
-
58
- // Unmount-only cleanup to fully reset without causing state update loops
59
- useEffect(() => {
60
- return () => {
61
- // Stop timers and reset store, but do NOT generate a new grid on unmount
62
- try {
63
- serviceRef.current?.stopGameTimer();
64
- } catch {}
65
- try {
66
- resetGame();
67
- } catch {}
68
- try {
69
- serviceRef.current?.cleanup();
70
- } catch {}
71
- };
72
- }, []);
73
-
74
- // Memoize service to prevent recreation
75
- const service = useMemo(() => {
76
- if (!serviceRef.current) {
77
- serviceRef.current = new PopitFidgetService();
78
- }
79
- return serviceRef.current;
80
- }, []);
81
-
82
- // Generate new fidget grid (simplified - always square based on difficulty)
83
- const generateNewFidget = useCallback(() => {
84
- const grid = service.generateFidgetGrid(difficulty);
85
- setFidgetGrid(grid);
86
- }, [service, setFidgetGrid, difficulty]);
87
-
88
- // Track previous difficulty to avoid infinite loops
89
- const prevDifficultyRef = React.useRef(difficulty);
90
-
91
- // Watch for difficulty changes and regenerate grid when difficulty changes
92
- const handleDifficultyChange = useCallback(() => {
93
- // Only regenerate if difficulty actually changed
94
- if (prevDifficultyRef.current !== difficulty) {
95
- if (!isPlaying) {
96
- // Game not playing - just regenerate grid
97
- generateNewFidget();
98
- }
99
- prevDifficultyRef.current = difficulty;
100
- }
101
- }, [difficulty, isPlaying, generateNewFidget]);
102
- useEffect(() => {
103
- handleDifficultyChange();
104
- }, [handleDifficultyChange]);
105
-
106
- // Watch for game completion events and play appropriate sounds
107
- React.useEffect(() => {
108
- if (gameOver && !isPlaying) {
109
- if (gameWon) {
110
- // All bubbles popped - game completed successfully
111
- playSound(GAME_SOUNDS.BUBBLE_POPPER.COMPLETE, enableSounds);
112
- } else {
113
- // Time ran out - game over
114
- playSound(GAME_SOUNDS.TIME_UP, enableSounds);
115
- }
116
- }
117
- }, [gameOver, gameWon, isPlaying, enableSounds]);
118
-
119
- // Timer effect - handles time elapsed when game is playing
120
- useEffect(() => {
121
- let timerInterval = null;
122
- if (isPlaying) {
123
- timerInterval = setInterval(() => {
124
- incrementTime();
125
- }, 1000);
126
- }
127
- return () => {
128
- if (timerInterval) {
129
- clearInterval(timerInterval);
130
- }
131
- };
132
- }, [isPlaying, incrementTime]);
133
-
134
- // Start game
135
- const startGameHandler = useCallback(() => {
136
- // Always generate new fidget when starting a new game
137
- generateNewFidget();
138
-
139
- // Play game start sound
140
- playSound(GAME_SOUNDS.BUBBLE_POPPER.START, enableSounds);
141
-
142
- // Store uses fixed 60s duration internally
143
- startGame();
144
-
145
- // Haptic feedback
146
- playHaptic(HapticType.MEDIUM, enableHaptics);
147
- }, [startGame, enableSounds, enableHaptics, generateNewFidget]);
148
-
149
- // Stop game - simply reset the game state without showing game over popup
150
- const stopGameHandler = useCallback(() => {
151
- service.stopGameTimer();
152
- resetGame();
153
- generateNewFidget();
154
- }, [service, resetGame, generateNewFidget]);
155
-
156
- // Reset game
157
- const resetGameHandler = useCallback(() => {
158
- service.stopGameTimer();
159
- resetGame();
160
- generateNewFidget();
161
- }, [service, resetGame, generateNewFidget]);
162
-
163
- // Handle bubble pop with stable callback reference
164
- const handleBubblePop = useCallback((row, col) => {
165
- if (!fidgetGrid) return;
166
- const bubble = fidgetGrid.bubbles[row]?.[col];
167
- if (!bubble || bubble.isPopped) return;
168
-
169
- // Play pop sound
170
- playSound(GAME_SOUNDS.BUBBLE_POPPER.POP, enableSounds);
171
-
172
- // Pop the bubble in store
173
- popBubble(row, col);
174
-
175
- // Haptic feedback
176
- playHaptic(HapticType.LIGHT, enableHaptics);
177
-
178
- // Completion percentage is already calculated efficiently in the store
179
- }, [fidgetGrid, popBubble, enableSounds, enableHaptics]);
180
-
181
- // Memoize screen dimensions to prevent recalculation
182
- const screenDimensions = useMemo(() => ({
183
- width,
184
- height
185
- }), []);
186
-
187
- // Calculate bubble size based on grid - made bigger for Pop It appearance
188
- const bubbleSize = useMemo(() => {
189
- if (!fidgetGrid) return 60;
190
- const availableWidth = screenDimensions.width * 0.85;
191
- const availableHeight = screenDimensions.height * 0.6;
192
- const maxSize = Math.min(availableWidth / fidgetGrid.size, availableHeight / fidgetGrid.size);
193
- // Increased minimum and maximum sizes for bigger, more prominent bubbles
194
- return Math.max(45, Math.min(80, maxSize * 0.9));
195
- }, [fidgetGrid, screenDimensions]);
196
-
197
- // Memoize game control button props to prevent unnecessary re-renders
198
- const gameControlButtonProps = useMemo(() => ({
199
- isPlaying,
200
- gameOver,
201
- onStartGame: startGameHandler,
202
- onStopGame: stopGameHandler,
203
- startButtonText: "START POPPING",
204
- stopButtonText: "STOP GAME",
205
- startButtonSubtext: "Pop bubbles to relax!",
206
- stopButtonSubtext: "End current game",
207
- startButtonColor: "#9c27b0",
208
- stopButtonColor: "#dc2626",
209
- startButtonBorderColor: "#ce93d8",
210
- stopButtonBorderColor: "#f87171"
211
- }), [isPlaying, gameOver, startGameHandler, stopGameHandler]);
212
-
213
- // Memoize game over modal props to prevent unnecessary re-renders
214
- const gameOverModalProps = useMemo(() => ({
215
- isVisible: gameOver,
216
- score: timeElapsed,
217
- onPlayAgain: resetGameHandler,
218
- buttonText: "Pop Again!",
219
- primaryColor: "rgba(108, 92, 231, 0.85)",
220
- borderColor: "rgba(108, 92, 231, 0.95)",
221
- buttonColor: "#9c27b0",
222
- buttonBorderColor: "#ce93d8",
223
- scoreFormatter: time => {
224
- const mins = Math.floor(time / 60);
225
- const secs = time % 60;
226
- return `${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
227
- },
228
- scoreLabel: "Time Elapsed"
229
- }), [gameOver, timeElapsed, resetGameHandler]);
230
-
231
- // Get offset from settings
232
- const offset = settings?.offset ?? 0;
233
- return /*#__PURE__*/_jsx(View, {
234
- style: styles.container,
235
- children: /*#__PURE__*/_jsx(GestureHandlerRootView, {
236
- children: /*#__PURE__*/_jsxs(View, {
237
- style: [styles.gameContainer, {
238
- paddingTop: offset
239
- }],
240
- children: [/*#__PURE__*/_jsx(GameBackground, {
241
- width: screenDimensions.width,
242
- height: screenDimensions.height,
243
- isPlaying: isPlaying
244
- }), /*#__PURE__*/_jsx(ScoreBoard, {
245
- timeElapsed: timeElapsed,
246
- offset: offset
247
- }), /*#__PURE__*/_jsx(View, {
248
- style: styles.gameArea,
249
- children: fidgetGrid && /*#__PURE__*/_jsx(FidgetGridComponent, {
250
- grid: fidgetGrid,
251
- bubbleSize: bubbleSize,
252
- onBubblePop: handleBubblePop,
253
- hapticEnabled: enableHaptics,
254
- isPlaying: isPlaying
255
- })
256
- }), /*#__PURE__*/_jsx(GameControlButton, {
257
- ...gameControlButtonProps
258
- }), /*#__PURE__*/_jsx(GameOverModal, {
259
- ...gameOverModalProps
260
- }), /*#__PURE__*/_jsx(GameSettingsModal, {
261
- gameId: GAME_IDS.POPIT_FIDGET,
262
- settings: settings || DEFAULT_GAME_SETTINGS,
263
- onSettingsChange: onSettingsChange
264
- })]
265
- })
266
- })
267
- });
268
- };
269
- const styles = StyleSheet.create({
270
- container: {
271
- flex: 1
272
- },
273
- gameContainer: {
274
- flex: 1,
275
- backgroundColor: '#fef7ff' // Very light lavender to complement rainbow theme
276
- },
277
- gameArea: {
278
- flex: 1,
279
- justifyContent: 'center',
280
- alignItems: 'center',
281
- paddingHorizontal: 20
282
- }
283
- });
284
- export { PopitFidget };
285
- //# sourceMappingURL=PopitFidget.js.map
1
+ "use strict";import React,{useEffect,useRef,useCallback,useMemo}from 'react';import{View,StyleSheet,Dimensions}from 'react-native';import{GestureHandlerRootView}from 'react-native-gesture-handler';import{usePopitFidgetStore}from "./PopitFidgetStore.js";import{PopitFidgetService}from "./PopitFidgetService.js";import{GAME_IDS,DEFAULT_GAME_SETTINGS}from "../../services/UtilsService.js";import{playSound,GAME_SOUNDS}from "../../services/SoundsService.js";import{playHaptic,HapticType}from "../../services/HapticsService.js";import{GameBackground,FidgetGrid as FidgetGridComponent,ScoreBoard}from "./components/index.js";import{GameControlButton,GameOverModal}from "../../helpers/index.js";import{GameSettingsModal}from "../../helpers/index.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const{width,height}= Dimensions.get('window');const PopitFidget =({settings,onSettingsChange})=>{const fidgetGrid = usePopitFidgetStore(state => state.fidgetGrid);const timeElapsed = usePopitFidgetStore(state => state.timeElapsed);const isPlaying = usePopitFidgetStore(state => state.isPlaying);const gameOver = usePopitFidgetStore(state => state.gameOver);const gameWon = usePopitFidgetStore(state => state.gameWon);const startGame = usePopitFidgetStore(state => state.startGame);const resetGame = usePopitFidgetStore(state => state.resetGame);const setFidgetGrid = usePopitFidgetStore(state => state.setFidgetGrid);const popBubble = usePopitFidgetStore(state => state.popBubble);const incrementTime = usePopitFidgetStore(state => state.incrementTime);const serviceRef = useRef(null);const{difficulty = 'medium',enableSounds = true,enableHaptics = true}= settings ||{};useEffect(()=>{if(!serviceRef.current){serviceRef.current = new PopitFidgetService();}if(serviceRef.current && !fidgetGrid){const grid = serviceRef.current.generateFidgetGrid(difficulty);setFidgetGrid(grid);}},[fidgetGrid,setFidgetGrid,difficulty]);useEffect(()=>{return()=>{try{serviceRef.current?.stopGameTimer();}catch{}try{resetGame();}catch{}try{serviceRef.current?.cleanup();}catch{}};},[]);const service = useMemo(()=>{if(!serviceRef.current){serviceRef.current = new PopitFidgetService();}return serviceRef.current;},[]);const generateNewFidget = useCallback(()=>{const grid = service.generateFidgetGrid(difficulty);setFidgetGrid(grid);},[service,setFidgetGrid,difficulty]);const prevDifficultyRef = React.useRef(difficulty);const handleDifficultyChange = useCallback(()=>{if(prevDifficultyRef.current !== difficulty){if(!isPlaying){generateNewFidget();}prevDifficultyRef.current = difficulty;}},[difficulty,isPlaying,generateNewFidget]);useEffect(()=>{handleDifficultyChange();},[handleDifficultyChange]);React.useEffect(()=>{if(gameOver && !isPlaying){if(gameWon){playSound(GAME_SOUNDS.BUBBLE_POPPER.COMPLETE,enableSounds);}else{playSound(GAME_SOUNDS.TIME_UP,enableSounds);}}},[gameOver,gameWon,isPlaying,enableSounds]);useEffect(()=>{let timerInterval = null;if(isPlaying){timerInterval = setInterval(()=>{incrementTime();},1000);}return()=>{if(timerInterval){clearInterval(timerInterval);}};},[isPlaying,incrementTime]);const startGameHandler = useCallback(()=>{generateNewFidget();playSound(GAME_SOUNDS.BUBBLE_POPPER.START,enableSounds);startGame();playHaptic(HapticType.MEDIUM,enableHaptics);},[startGame,enableSounds,enableHaptics,generateNewFidget]);const stopGameHandler = useCallback(()=>{service.stopGameTimer();resetGame();generateNewFidget();},[service,resetGame,generateNewFidget]);const resetGameHandler = useCallback(()=>{service.stopGameTimer();resetGame();generateNewFidget();},[service,resetGame,generateNewFidget]);const handleBubblePop = useCallback((row,col)=>{if(!fidgetGrid)return;const bubble = fidgetGrid.bubbles[row]?.[col];if(!bubble || bubble.isPopped)return;playSound(GAME_SOUNDS.BUBBLE_POPPER.POP,enableSounds);popBubble(row,col);playHaptic(HapticType.LIGHT,enableHaptics);},[fidgetGrid,popBubble,enableSounds,enableHaptics]);const screenDimensions = useMemo(()=>({width,height}),[]);const bubbleSize = useMemo(()=>{if(!fidgetGrid)return 60;const availableWidth = screenDimensions.width * 0.85;const availableHeight = screenDimensions.height * 0.6;const maxSize = Math.min(availableWidth / fidgetGrid.size,availableHeight / fidgetGrid.size);return Math.max(45,Math.min(80,maxSize * 0.9));},[fidgetGrid,screenDimensions]);const gameControlButtonProps = useMemo(()=>({isPlaying,gameOver,onStartGame:startGameHandler,onStopGame:stopGameHandler,startButtonText:"START POPPING",stopButtonText:"STOP GAME",startButtonSubtext:"Pop bubbles to relax!",stopButtonSubtext:"End current game",startButtonColor:"#9c27b0",stopButtonColor:"#dc2626",startButtonBorderColor:"#ce93d8",stopButtonBorderColor:"#f87171"}),[isPlaying,gameOver,startGameHandler,stopGameHandler]);const gameOverModalProps = useMemo(()=>({isVisible:gameOver,score:timeElapsed,onPlayAgain:resetGameHandler,buttonText:"Pop Again!",primaryColor:"rgba(156,39,176,0.5)",borderColor:"rgba(156,39,176,0.5)",buttonColor:"#ffffff",buttonBorderColor:"#ffffff",buttonTextColor:"#9c27b0",scoreFormatter:time =>{const mins = Math.floor(time / 60);const secs = time % 60;return `${mins.toString().padStart(2,'0')}:${secs.toString().padStart(2,'0')}`;},scoreLabel:"Time Elapsed"}),[gameOver,timeElapsed,resetGameHandler]);const offset = settings?.offset ?? 0;return _jsx(View,{style:styles.container,children:_jsx(GestureHandlerRootView,{children:_jsxs(View,{style:[styles.gameContainer,{paddingTop:offset}],children:[_jsx(GameBackground,{width:screenDimensions.width,height:screenDimensions.height,isPlaying:isPlaying}),_jsx(ScoreBoard,{timeElapsed:timeElapsed,offset:offset}),_jsx(View,{style:styles.gameArea,children:fidgetGrid && _jsx(FidgetGridComponent,{grid:fidgetGrid,bubbleSize:bubbleSize,onBubblePop:handleBubblePop,hapticEnabled:enableHaptics,isPlaying:isPlaying})}),_jsx(GameControlButton,{...gameControlButtonProps}),_jsx(GameOverModal,{...gameOverModalProps}),_jsx(GameSettingsModal,{gameId:GAME_IDS.POPIT_FIDGET,settings:settings || DEFAULT_GAME_SETTINGS,onSettingsChange:onSettingsChange})]})})});};const styles = StyleSheet.create({container:{flex:1},gameContainer:{flex:1,backgroundColor:'#fef7ff'},gameArea:{flex:1,justifyContent:'center',alignItems:'center',paddingHorizontal:20}});export{PopitFidget};
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","useCallback","useMemo","View","StyleSheet","Dimensions","GestureHandlerRootView","usePopitFidgetStore","PopitFidgetService","GAME_IDS","DEFAULT_GAME_SETTINGS","playSound","GAME_SOUNDS","playHaptic","HapticType","GameBackground","FidgetGrid","FidgetGridComponent","ScoreBoard","GameControlButton","GameOverModal","GameSettingsModal","jsx","_jsx","jsxs","_jsxs","width","height","get","PopitFidget","settings","onSettingsChange","fidgetGrid","state","timeElapsed","isPlaying","gameOver","gameWon","startGame","resetGame","setFidgetGrid","popBubble","incrementTime","serviceRef","difficulty","enableSounds","enableHaptics","current","grid","generateFidgetGrid","stopGameTimer","cleanup","service","generateNewFidget","prevDifficultyRef","handleDifficultyChange","BUBBLE_POPPER","COMPLETE","TIME_UP","timerInterval","setInterval","clearInterval","startGameHandler","START","MEDIUM","stopGameHandler","resetGameHandler","handleBubblePop","row","col","bubble","bubbles","isPopped","POP","LIGHT","screenDimensions","bubbleSize","availableWidth","availableHeight","maxSize","Math","min","size","max","gameControlButtonProps","onStartGame","onStopGame","startButtonText","stopButtonText","startButtonSubtext","stopButtonSubtext","startButtonColor","stopButtonColor","startButtonBorderColor","stopButtonBorderColor","gameOverModalProps","isVisible","score","onPlayAgain","buttonText","primaryColor","borderColor","buttonColor","buttonBorderColor","scoreFormatter","time","mins","floor","secs","toString","padStart","scoreLabel","offset","style","styles","container","children","gameContainer","paddingTop","gameArea","onBubblePop","hapticEnabled","gameId","POPIT_FIDGET","create","flex","backgroundColor","justifyContent","alignItems","paddingHorizontal"],"sourceRoot":"../../../../src","sources":["games/popit-fidget/PopitFidget.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useRef","useCallback","useMemo","View","StyleSheet","Dimensions","GestureHandlerRootView","usePopitFidgetStore","PopitFidgetService","GAME_IDS","DEFAULT_GAME_SETTINGS","playSound","GAME_SOUNDS","playHaptic","HapticType","GameBackground","FidgetGrid","FidgetGridComponent","ScoreBoard","GameControlButton","GameOverModal","GameSettingsModal","jsx","_jsx","jsxs","_jsxs","width","height","get","PopitFidget","settings","onSettingsChange","fidgetGrid","state","timeElapsed","isPlaying","gameOver","gameWon","startGame","resetGame","setFidgetGrid","popBubble","incrementTime","serviceRef","difficulty","enableSounds","enableHaptics","current","grid","generateFidgetGrid","stopGameTimer","cleanup","service","generateNewFidget","prevDifficultyRef","handleDifficultyChange","BUBBLE_POPPER","COMPLETE","TIME_UP","timerInterval","setInterval","clearInterval","startGameHandler","START","MEDIUM","stopGameHandler","resetGameHandler","handleBubblePop","row","col","bubble","bubbles","isPopped","POP","LIGHT","screenDimensions","bubbleSize","availableWidth","availableHeight","maxSize","Math","min","size","max","gameControlButtonProps","onStartGame","onStopGame","startButtonText","stopButtonText","startButtonSubtext","stopButtonSubtext","startButtonColor","stopButtonColor","startButtonBorderColor","stopButtonBorderColor","gameOverModalProps","isVisible","score","onPlayAgain","buttonText","primaryColor","borderColor","buttonColor","buttonBorderColor","buttonTextColor","scoreFormatter","time","mins","floor","secs","toString","padStart","scoreLabel","offset","style","styles","container","children","gameContainer","paddingTop","gameArea","onBubblePop","hapticEnabled","gameId","POPIT_FIDGET","create","flex","backgroundColor","justifyContent","alignItems","paddingHorizontal"],"sourceRoot":"../../../../src","sources":["games/popit-fidget/PopitFidget.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,113 +1 @@
1
- "use strict";
2
-
3
- // Popit Fidget Game Constants
4
- export const POPIT_FIDGET_GAME_CONFIG = {
5
- GAME_DURATION: 120,
6
- // seconds
7
- POINTS_PER_BUBBLE: 10,
8
- COMPLETION_BONUS: 500,
9
- TIME_BONUS_MULTIPLIER: 5,
10
- BUBBLE_SIZE: 40,
11
- ANIMATION_DURATION: 300,
12
- PARTICLE_COUNT: 4,
13
- // Reduced for better performance
14
- PARTICLE_LIFETIME: 800,
15
- // Difficulty-based square grid sizes
16
- GRID_SIZES: {
17
- easy: 5,
18
- // 5x5 = 25 bubbles
19
- medium: 6,
20
- // 6x6 = 36 bubbles
21
- hard: 7 // 7x7 = 49 bubbles
22
- }
23
- };
24
- export const POPIT_FIDGET_ANIMATION_CONFIG = {
25
- POP_SCALE: 1.3,
26
- POP_DURATION: 200,
27
- FADE_DURATION: 300,
28
- BOUNCE_SCALE: 0.9,
29
- PARTICLE_VELOCITY: 3,
30
- PARTICLE_GRAVITY: 0.2
31
- };
32
- export const POPIT_FIDGET_COLORS = {
33
- BACKGROUND: '#f5f5f5',
34
- // Light gray background
35
- FIDGET_BORDER: '#333',
36
- FIDGET_SHADOW: 'rgba(0,0,0,0.3)',
37
- SCORE: '#4a90e2',
38
- UI: '#6c5ce7',
39
- POPPED_BUBBLE: '#d0d0d0',
40
- PARTICLE_GLOW: 'rgba(255,255,255,0.9)',
41
- // Pop It fidget toy colors - rainbow gradient
42
- FIDGET_BASE: '#ffffff',
43
- BUBBLE_SHADOW: 'rgba(0,0,0,0.2)',
44
- BUBBLE_HIGHLIGHT: 'rgba(255,255,255,0.6)'
45
- };
46
-
47
- // Rainbow gradient colors for authentic Pop It fidget toy look - enhanced vibrancy
48
- export const RAINBOW_COLORS = ['#E91E63',
49
- // Vibrant pink/magenta (like image)
50
- '#F44336',
51
- // Bright red
52
- '#FF5722',
53
- // Deep orange
54
- '#FF9800',
55
- // Orange
56
- '#FFC107',
57
- // Amber/yellow
58
- '#8E24AA',
59
- // Deep purple
60
- '#CDDC39',
61
- // Lime
62
- '#8BC34A',
63
- // Light green
64
- '#4CAF50',
65
- // Green
66
- '#009688',
67
- // Teal
68
- '#00BCD4',
69
- // Cyan
70
- '#03A9F4',
71
- // Light blue
72
- '#2196F3',
73
- // Blue
74
- '#3F51B5',
75
- // Indigo
76
- '#9C27B0',
77
- // Purple
78
- '#E91E63' // Back to vibrant pink for seamless loop
79
- ];
80
-
81
- // Legacy bubble colors for backward compatibility
82
- export const BUBBLE_COLORS = RAINBOW_COLORS;
83
-
84
- // Popit Fidget Game Theme - Matches scoreboard purple
85
- export const POPIT_FIDGET_THEME = {
86
- backgroundColor: '#fef7ff',
87
- // Very light lavender to match game background
88
- headerBackgroundColor: 'rgba(108, 92, 231, 0.9)',
89
- // Purple header to match scoreboard
90
- headerTextColor: '#ffffff',
91
- sectionBackgroundColor: 'rgba(108, 92, 231, 0.4)',
92
- // Match scoreboard transparency
93
- sectionTitleColor: '#ffffff',
94
- // White text on purple sections
95
- buttonSelectedColor: '#9c27b0',
96
- // Match start button purple
97
- buttonUnselectedColor: 'rgba(255, 255, 255, 0.3)',
98
- buttonSelectedTextColor: '#ffffff',
99
- buttonUnselectedTextColor: '#1f2937',
100
- switchTrackColorFalse: 'rgba(108, 92, 231, 0.5)',
101
- switchTrackColorTrue: '#9c27b0',
102
- // Match start button
103
- switchThumbColor: '#ffffff',
104
- infoTextColor: '#1f2937' // Dark text for readability
105
- };
106
-
107
- // Popit Fidget Difficulty Descriptions
108
- export const POPIT_FIDGET_DIFFICULTY_DESCRIPTIONS = {
109
- easy: 'Smaller fidget grids, relaxing pace',
110
- medium: 'Medium grids, satisfying pops',
111
- hard: 'Large complex shapes, ultimate satisfaction!'
112
- };
113
- //# sourceMappingURL=PopitFidgetConstants.js.map
1
+ "use strict";export const POPIT_FIDGET_GAME_CONFIG ={GAME_DURATION:120,POINTS_PER_BUBBLE:10,COMPLETION_BONUS:500,TIME_BONUS_MULTIPLIER:5,BUBBLE_SIZE:40,ANIMATION_DURATION:300,PARTICLE_COUNT:4,PARTICLE_LIFETIME:800,GRID_SIZES:{easy:5,medium:6,hard:7}};export const POPIT_FIDGET_ANIMATION_CONFIG ={POP_SCALE:1.3,POP_DURATION:200,FADE_DURATION:300,BOUNCE_SCALE:0.9,PARTICLE_VELOCITY:3,PARTICLE_GRAVITY:0.2};export const POPIT_FIDGET_COLORS ={BACKGROUND:'#f5f5f5',FIDGET_BORDER:'#333',FIDGET_SHADOW:'rgba(0,0,0,0.3)',SCORE:'#4a90e2',UI:'#6c5ce7',POPPED_BUBBLE:'#d0d0d0',PARTICLE_GLOW:'rgba(255,255,255,0.9)',FIDGET_BASE:'#ffffff',BUBBLE_SHADOW:'rgba(0,0,0,0.2)',BUBBLE_HIGHLIGHT:'rgba(255,255,255,0.6)'};export const RAINBOW_COLORS = ['#E91E63','#F44336','#FF5722','#FF9800','#FFC107','#8E24AA','#CDDC39','#8BC34A','#4CAF50','#009688','#00BCD4','#03A9F4','#2196F3','#3F51B5','#9C27B0','#E91E63' ];export const BUBBLE_COLORS = RAINBOW_COLORS;export const POPIT_FIDGET_THEME ={backgroundColor:'rgba(0,0,0,0.7)',headerBackgroundColor:'#9c27b0',headerTextColor:'#ffffff',sectionBackgroundColor:'rgba(156,39,176,0.15)',sectionTitleColor:'#9c27b0',buttonSelectedColor:'#9c27b0',buttonUnselectedColor:'rgba(255,255,255,0.2)',buttonSelectedTextColor:'#ffffff',buttonUnselectedTextColor:'rgba(255,255,255,0.7)',switchTrackColorFalse:'rgba(156,39,176,0.3)',switchTrackColorTrue:'#9c27b0',switchThumbColor:'#ffffff',infoTextColor:'rgba(255,255,255,0.9)'};export const POPIT_FIDGET_DIFFICULTY_DESCRIPTIONS ={easy:'Smaller fidget grids,relaxing pace',medium:'Medium grids,satisfying pops',hard:'Large complex shapes,ultimate satisfaction!'};
@@ -1 +1 @@
1
- {"version":3,"names":["POPIT_FIDGET_GAME_CONFIG","GAME_DURATION","POINTS_PER_BUBBLE","COMPLETION_BONUS","TIME_BONUS_MULTIPLIER","BUBBLE_SIZE","ANIMATION_DURATION","PARTICLE_COUNT","PARTICLE_LIFETIME","GRID_SIZES","easy","medium","hard","POPIT_FIDGET_ANIMATION_CONFIG","POP_SCALE","POP_DURATION","FADE_DURATION","BOUNCE_SCALE","PARTICLE_VELOCITY","PARTICLE_GRAVITY","POPIT_FIDGET_COLORS","BACKGROUND","FIDGET_BORDER","FIDGET_SHADOW","SCORE","UI","POPPED_BUBBLE","PARTICLE_GLOW","FIDGET_BASE","BUBBLE_SHADOW","BUBBLE_HIGHLIGHT","RAINBOW_COLORS","BUBBLE_COLORS","POPIT_FIDGET_THEME","backgroundColor","headerBackgroundColor","headerTextColor","sectionBackgroundColor","sectionTitleColor","buttonSelectedColor","buttonUnselectedColor","buttonSelectedTextColor","buttonUnselectedTextColor","switchTrackColorFalse","switchTrackColorTrue","switchThumbColor","infoTextColor","POPIT_FIDGET_DIFFICULTY_DESCRIPTIONS"],"sourceRoot":"../../../../src","sources":["games/popit-fidget/PopitFidgetConstants.ts"],"mappings":";;AAEA;AACA,OAAO,MAAMA,wBAAwB,GAAG;EACtCC,aAAa,EAAE,GAAG;EAAE;EACpBC,iBAAiB,EAAE,EAAE;EACrBC,gBAAgB,EAAE,GAAG;EACrBC,qBAAqB,EAAE,CAAC;EACxBC,WAAW,EAAE,EAAE;EACfC,kBAAkB,EAAE,GAAG;EACvBC,cAAc,EAAE,CAAC;EAAE;EACnBC,iBAAiB,EAAE,GAAG;EACtB;EACAC,UAAU,EAAE;IACVC,IAAI,EAAE,CAAC;IAAK;IACZC,MAAM,EAAE,CAAC;IAAG;IACZC,IAAI,EAAE,CAAC,CAAK;EACd;AACF,CAAU;AAEV,OAAO,MAAMC,6BAA6B,GAAG;EAC3CC,SAAS,EAAE,GAAG;EACdC,YAAY,EAAE,GAAG;EACjBC,aAAa,EAAE,GAAG;EAClBC,YAAY,EAAE,GAAG;EACjBC,iBAAiB,EAAE,CAAC;EACpBC,gBAAgB,EAAE;AACpB,CAAU;AAEV,OAAO,MAAMC,mBAAmB,GAAG;EACjCC,UAAU,EAAE,SAAS;EAAE;EACvBC,aAAa,EAAE,MAAM;EACrBC,aAAa,EAAE,iBAAiB;EAChCC,KAAK,EAAE,SAAS;EAChBC,EAAE,EAAE,SAAS;EACbC,aAAa,EAAE,SAAS;EACxBC,aAAa,EAAE,uBAAuB;EACtC;EACAC,WAAW,EAAE,SAAS;EACtBC,aAAa,EAAE,iBAAiB;EAChCC,gBAAgB,EAAE;AACpB,CAAU;;AAEV;AACA,OAAO,MAAMC,cAAc,GAAG,CAC5B,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS,CAAE;AAAA,CACH;;AAEV;AACA,OAAO,MAAMC,aAAa,GAAGD,cAAc;;AAE3C;AACA,OAAO,MAAME,kBAAqC,GAAG;EACnDC,eAAe,EAAE,SAAS;EAAE;EAC5BC,qBAAqB,EAAE,yBAAyB;EAAE;EAClDC,eAAe,EAAE,SAAS;EAC1BC,sBAAsB,EAAE,yBAAyB;EAAE;EACnDC,iBAAiB,EAAE,SAAS;EAAE;EAC9BC,mBAAmB,EAAE,SAAS;EAAE;EAChCC,qBAAqB,EAAE,0BAA0B;EACjDC,uBAAuB,EAAE,SAAS;EAClCC,yBAAyB,EAAE,SAAS;EACpCC,qBAAqB,EAAE,yBAAyB;EAChDC,oBAAoB,EAAE,SAAS;EAAE;EACjCC,gBAAgB,EAAE,SAAS;EAC3BC,aAAa,EAAE,SAAS,CAAE;AAC5B,CAAC;;AAED;AACA,OAAO,MAAMC,oCAAoC,GAAG;EAClDrC,IAAI,EAAE,qCAAqC;EAC3CC,MAAM,EAAE,+BAA+B;EACvCC,IAAI,EAAE;AACR,CAAU","ignoreList":[]}
1
+ {"version":3,"names":["POPIT_FIDGET_GAME_CONFIG","GAME_DURATION","POINTS_PER_BUBBLE","COMPLETION_BONUS","TIME_BONUS_MULTIPLIER","BUBBLE_SIZE","ANIMATION_DURATION","PARTICLE_COUNT","PARTICLE_LIFETIME","GRID_SIZES","easy","medium","hard","POPIT_FIDGET_ANIMATION_CONFIG","POP_SCALE","POP_DURATION","FADE_DURATION","BOUNCE_SCALE","PARTICLE_VELOCITY","PARTICLE_GRAVITY","POPIT_FIDGET_COLORS","BACKGROUND","FIDGET_BORDER","FIDGET_SHADOW","SCORE","UI","POPPED_BUBBLE","PARTICLE_GLOW","FIDGET_BASE","BUBBLE_SHADOW","BUBBLE_HIGHLIGHT","RAINBOW_COLORS","BUBBLE_COLORS","POPIT_FIDGET_THEME","backgroundColor","headerBackgroundColor","headerTextColor","sectionBackgroundColor","sectionTitleColor","buttonSelectedColor","buttonUnselectedColor","buttonSelectedTextColor","buttonUnselectedTextColor","switchTrackColorFalse","switchTrackColorTrue","switchThumbColor","infoTextColor","POPIT_FIDGET_DIFFICULTY_DESCRIPTIONS"],"sourceRoot":"../../../../src","sources":["games/popit-fidget/PopitFidgetConstants.ts"],"mappings":";;AAEA;AACA,OAAO,MAAMA,wBAAwB,GAAG;EACtCC,aAAa,EAAE,GAAG;EAAE;EACpBC,iBAAiB,EAAE,EAAE;EACrBC,gBAAgB,EAAE,GAAG;EACrBC,qBAAqB,EAAE,CAAC;EACxBC,WAAW,EAAE,EAAE;EACfC,kBAAkB,EAAE,GAAG;EACvBC,cAAc,EAAE,CAAC;EAAE;EACnBC,iBAAiB,EAAE,GAAG;EACtB;EACAC,UAAU,EAAE;IACVC,IAAI,EAAE,CAAC;IAAK;IACZC,MAAM,EAAE,CAAC;IAAG;IACZC,IAAI,EAAE,CAAC,CAAK;EACd;AACF,CAAU;AAEV,OAAO,MAAMC,6BAA6B,GAAG;EAC3CC,SAAS,EAAE,GAAG;EACdC,YAAY,EAAE,GAAG;EACjBC,aAAa,EAAE,GAAG;EAClBC,YAAY,EAAE,GAAG;EACjBC,iBAAiB,EAAE,CAAC;EACpBC,gBAAgB,EAAE;AACpB,CAAU;AAEV,OAAO,MAAMC,mBAAmB,GAAG;EACjCC,UAAU,EAAE,SAAS;EAAE;EACvBC,aAAa,EAAE,MAAM;EACrBC,aAAa,EAAE,iBAAiB;EAChCC,KAAK,EAAE,SAAS;EAChBC,EAAE,EAAE,SAAS;EACbC,aAAa,EAAE,SAAS;EACxBC,aAAa,EAAE,uBAAuB;EACtC;EACAC,WAAW,EAAE,SAAS;EACtBC,aAAa,EAAE,iBAAiB;EAChCC,gBAAgB,EAAE;AACpB,CAAU;;AAEV;AACA,OAAO,MAAMC,cAAc,GAAG,CAC5B,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS,CAAE;AAAA,CACH;;AAEV;AACA,OAAO,MAAMC,aAAa,GAAGD,cAAc;;AAE3C;AACA,OAAO,MAAME,kBAAqC,GAAG;EACnDC,eAAe,EAAE,oBAAoB;EAAE;EACvCC,qBAAqB,EAAE,SAAS;EAAE;EAClCC,eAAe,EAAE,SAAS;EAC1BC,sBAAsB,EAAE,0BAA0B;EAAE;EACpDC,iBAAiB,EAAE,SAAS;EAAE;EAC9BC,mBAAmB,EAAE,SAAS;EAAE;EAChCC,qBAAqB,EAAE,0BAA0B;EACjDC,uBAAuB,EAAE,SAAS;EAClCC,yBAAyB,EAAE,0BAA0B;EAAE;EACvDC,qBAAqB,EAAE,yBAAyB;EAChDC,oBAAoB,EAAE,SAAS;EAAE;EACjCC,gBAAgB,EAAE,SAAS;EAC3BC,aAAa,EAAE,0BAA0B,CAAE;AAC7C,CAAC;;AAED;AACA,OAAO,MAAMC,oCAAoC,GAAG;EAClDrC,IAAI,EAAE,qCAAqC;EAC3CC,MAAM,EAAE,+BAA+B;EACvCC,IAAI,EAAE;AACR,CAAU","ignoreList":[]}