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,131 +1 @@
1
- "use strict";
2
-
3
- import React from 'react';
4
- import { View, StyleSheet } from 'react-native';
5
- import { GameControlButton, GameOverModal, GameSettingsModal } from "../../helpers/index.js";
6
- import { GAME_IDS, DEFAULT_GAME_SETTINGS } from "../../services/UtilsService.js";
7
- import { GameBackground, GameGrid, ScoreBoard } from "./components/index.js";
8
- import { useCandyCrushStore, useScore, useIsPlaying, useIsGameOver } from "./CandyCrushStore.js";
9
- import { CANDY_CRUSH_COLORS } from "./CandyCrushConstants.js";
10
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
- export const CandyCrush = /*#__PURE__*/React.memo(({
12
- settings,
13
- onSettingsChange
14
- }) => {
15
- // Zustand store selectors for optimal re-renders
16
- const score = useScore();
17
- const isPlaying = useIsPlaying();
18
- const isGameOver = useIsGameOver();
19
-
20
- // Store actions (memoized to prevent re-creation)
21
- const startGame = useCandyCrushStore(state => state.startGame);
22
- const stopGame = useCandyCrushStore(state => state.stopGame);
23
- const resetGame = useCandyCrushStore(state => state.resetGame);
24
- const initializeGame = useCandyCrushStore(state => state.initializeGame);
25
- const updateSettings = useCandyCrushStore(state => state.updateSettings);
26
-
27
- // Update settings when they change
28
- React.useEffect(() => {
29
- const enableSounds = settings?.enableSounds ?? true;
30
- const enableHaptics = settings?.enableHaptics ?? true;
31
- updateSettings(enableSounds, enableHaptics);
32
- }, [settings?.enableSounds, settings?.enableHaptics, updateSettings]);
33
-
34
- // Initialize on mount and when difficulty changes
35
- React.useEffect(() => {
36
- const difficulty = settings?.difficulty || 'easy';
37
- initializeGame(difficulty);
38
- }, [settings?.difficulty, initializeGame]);
39
-
40
- // Game control handlers
41
- const handleStartGame = React.useCallback(() => {
42
- startGame();
43
- }, [startGame]);
44
- const handleResetGame = React.useCallback(() => {
45
- resetGame();
46
- }, [resetGame]);
47
- const handleStopGame = React.useCallback(() => {
48
- stopGame();
49
- }, [stopGame]);
50
-
51
- // Memoized GameControlButton props
52
- const gameControlButtonProps = React.useMemo(() => ({
53
- isPlaying,
54
- gameOver: isGameOver,
55
- onStartGame: handleStartGame,
56
- onStopGame: handleStopGame,
57
- onResetGame: handleResetGame,
58
- startButtonText: 'Start Crushing!',
59
- startButtonSubtext: 'Match 3 or more',
60
- startButtonColor: CANDY_CRUSH_COLORS.BUTTON_PRIMARY,
61
- startButtonBorderColor: CANDY_CRUSH_COLORS.BUTTON_SECONDARY
62
- }), [isPlaying, isGameOver, handleStartGame, handleStopGame, handleResetGame]);
63
-
64
- // Memoized GameOverModal props
65
- const gameOverModalProps = React.useMemo(() => ({
66
- isVisible: isGameOver,
67
- score,
68
- onPlayAgain: handleResetGame,
69
- buttonText: 'Crush Again!',
70
- primaryColor: CANDY_CRUSH_COLORS.MODAL_PRIMARY,
71
- borderColor: CANDY_CRUSH_COLORS.MODAL_BORDER,
72
- buttonColor: CANDY_CRUSH_COLORS.MODAL_BUTTON,
73
- buttonBorderColor: CANDY_CRUSH_COLORS.MODAL_BUTTON_BORDER,
74
- scoreFormatter: s => `${s}`,
75
- additionalInfo: 'Time\'s up!'
76
- }), [isGameOver, score, handleResetGame]);
77
-
78
- // Memoized GameSettingsModal props
79
- const gameSettingsModalProps = React.useMemo(() => ({
80
- gameId: GAME_IDS.CANDY_CRUSH,
81
- settings: settings || DEFAULT_GAME_SETTINGS,
82
- onSettingsChange
83
- }), [settings, onSettingsChange]);
84
-
85
- // Get offset from settings
86
- const offset = settings?.offset ?? 0;
87
-
88
- // Memoized dynamic styles based on offset
89
- const dynamicStyles = React.useMemo(() => ({
90
- gridContainer: {
91
- ...styles.gridContainer,
92
- paddingTop: offset
93
- }
94
- }), [offset]);
95
- return /*#__PURE__*/_jsx(GameBackground, {
96
- children: /*#__PURE__*/_jsxs(View, {
97
- style: styles.container,
98
- children: [/*#__PURE__*/_jsx(View, {
99
- style: dynamicStyles.gridContainer,
100
- children: /*#__PURE__*/_jsx(GameGrid, {})
101
- }), /*#__PURE__*/_jsx(ScoreBoard, {
102
- offset: offset
103
- }), /*#__PURE__*/_jsx(GameControlButton, {
104
- ...gameControlButtonProps
105
- }), /*#__PURE__*/_jsx(GameOverModal, {
106
- ...gameOverModalProps
107
- }), /*#__PURE__*/_jsx(GameSettingsModal, {
108
- ...gameSettingsModalProps
109
- })]
110
- })
111
- });
112
- });
113
- CandyCrush.displayName = 'CandyCrush';
114
- const styles = StyleSheet.create({
115
- container: {
116
- flex: 1
117
- },
118
- gridContainer: {
119
- flex: 1,
120
- justifyContent: 'center',
121
- alignItems: 'center'
122
- },
123
- scoreboardContainer: {
124
- position: 'absolute',
125
- top: 0,
126
- left: 0,
127
- right: 0,
128
- zIndex: 10
129
- }
130
- });
131
- //# sourceMappingURL=CandyCrush.js.map
1
+ "use strict";import React from 'react';import{View,StyleSheet}from 'react-native';import{GameControlButton,GameOverModal,GameSettingsModal}from "../../helpers/index.js";import{GAME_IDS,DEFAULT_GAME_SETTINGS}from "../../services/UtilsService.js";import{GameBackground,GameGrid,ScoreBoard}from "./components/index.js";import{useCandyCrushStore,useScore,useIsPlaying,useIsGameOver}from "./CandyCrushStore.js";import{CANDY_CRUSH_COLORS}from "./CandyCrushConstants.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";export const CandyCrush = React.memo(({settings,onSettingsChange})=>{const score = useScore();const isPlaying = useIsPlaying();const isGameOver = useIsGameOver();const startGame = useCandyCrushStore(state => state.startGame);const stopGame = useCandyCrushStore(state => state.stopGame);const resetGame = useCandyCrushStore(state => state.resetGame);const initializeGame = useCandyCrushStore(state => state.initializeGame);const updateSettings = useCandyCrushStore(state => state.updateSettings);React.useEffect(()=>{const enableSounds = settings?.enableSounds ?? true;const enableHaptics = settings?.enableHaptics ?? true;updateSettings(enableSounds,enableHaptics);},[settings?.enableSounds,settings?.enableHaptics,updateSettings]);React.useEffect(()=>{const difficulty = settings?.difficulty || 'easy';initializeGame(difficulty);},[settings?.difficulty,initializeGame]);const handleStartGame = React.useCallback(()=>{startGame();},[startGame]);const handleResetGame = React.useCallback(()=>{resetGame();},[resetGame]);const handleStopGame = React.useCallback(()=>{stopGame();},[stopGame]);const gameControlButtonProps = React.useMemo(()=>({isPlaying,gameOver:isGameOver,onStartGame:handleStartGame,onStopGame:handleStopGame,onResetGame:handleResetGame,startButtonText:'Start Crushing!',startButtonSubtext:'Match 3 or more',startButtonColor:CANDY_CRUSH_COLORS.BUTTON_PRIMARY,startButtonBorderColor:CANDY_CRUSH_COLORS.BUTTON_SECONDARY}),[isPlaying,isGameOver,handleStartGame,handleStopGame,handleResetGame]);const gameOverModalProps = React.useMemo(()=>({isVisible:isGameOver,score,onPlayAgain:handleResetGame,buttonText:'Crush Again!',primaryColor:'rgba(255,149,0,0.5)',borderColor:'rgba(255,149,0,0.5)',buttonColor:'#ffffff',buttonBorderColor:'#ffffff',buttonTextColor:'#FF9500',scoreFormatter:s => `${s}`}),[isGameOver,score,handleResetGame]);const gameSettingsModalProps = React.useMemo(()=>({gameId:GAME_IDS.CANDY_CRUSH,settings:settings || DEFAULT_GAME_SETTINGS,onSettingsChange}),[settings,onSettingsChange]);const offset = settings?.offset ?? 0;const dynamicStyles = React.useMemo(()=>({gridContainer:{...styles.gridContainer,paddingTop:offset}}),[offset]);return _jsx(GameBackground,{children:_jsxs(View,{style:styles.container,children:[_jsx(View,{style:dynamicStyles.gridContainer,children:_jsx(GameGrid,{})}),_jsx(ScoreBoard,{offset:offset}),_jsx(GameControlButton,{...gameControlButtonProps}),_jsx(GameOverModal,{...gameOverModalProps}),_jsx(GameSettingsModal,{...gameSettingsModalProps})]})});});CandyCrush.displayName = 'CandyCrush';const styles = StyleSheet.create({container:{flex:1},gridContainer:{flex:1,justifyContent:'center',alignItems:'center'},scoreboardContainer:{position:'absolute',top:0,left:0,right:0,zIndex:10}});
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","StyleSheet","GameControlButton","GameOverModal","GameSettingsModal","GAME_IDS","DEFAULT_GAME_SETTINGS","GameBackground","GameGrid","ScoreBoard","useCandyCrushStore","useScore","useIsPlaying","useIsGameOver","CANDY_CRUSH_COLORS","jsx","_jsx","jsxs","_jsxs","CandyCrush","memo","settings","onSettingsChange","score","isPlaying","isGameOver","startGame","state","stopGame","resetGame","initializeGame","updateSettings","useEffect","enableSounds","enableHaptics","difficulty","handleStartGame","useCallback","handleResetGame","handleStopGame","gameControlButtonProps","useMemo","gameOver","onStartGame","onStopGame","onResetGame","startButtonText","startButtonSubtext","startButtonColor","BUTTON_PRIMARY","startButtonBorderColor","BUTTON_SECONDARY","gameOverModalProps","isVisible","onPlayAgain","buttonText","primaryColor","MODAL_PRIMARY","borderColor","MODAL_BORDER","buttonColor","MODAL_BUTTON","buttonBorderColor","MODAL_BUTTON_BORDER","scoreFormatter","s","additionalInfo","gameSettingsModalProps","gameId","CANDY_CRUSH","offset","dynamicStyles","gridContainer","styles","paddingTop","children","style","container","displayName","create","flex","justifyContent","alignItems","scoreboardContainer","position","top","left","right","zIndex"],"sourceRoot":"../../../../src","sources":["games/candy-crush/CandyCrush.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","View","StyleSheet","GameControlButton","GameOverModal","GameSettingsModal","GAME_IDS","DEFAULT_GAME_SETTINGS","GameBackground","GameGrid","ScoreBoard","useCandyCrushStore","useScore","useIsPlaying","useIsGameOver","CANDY_CRUSH_COLORS","jsx","_jsx","jsxs","_jsxs","CandyCrush","memo","settings","onSettingsChange","score","isPlaying","isGameOver","startGame","state","stopGame","resetGame","initializeGame","updateSettings","useEffect","enableSounds","enableHaptics","difficulty","handleStartGame","useCallback","handleResetGame","handleStopGame","gameControlButtonProps","useMemo","gameOver","onStartGame","onStopGame","onResetGame","startButtonText","startButtonSubtext","startButtonColor","BUTTON_PRIMARY","startButtonBorderColor","BUTTON_SECONDARY","gameOverModalProps","isVisible","onPlayAgain","buttonText","primaryColor","borderColor","buttonColor","buttonBorderColor","buttonTextColor","scoreFormatter","s","gameSettingsModalProps","gameId","CANDY_CRUSH","offset","dynamicStyles","gridContainer","styles","paddingTop","children","style","container","displayName","create","flex","justifyContent","alignItems","scoreboardContainer","position","top","left","right","zIndex"],"sourceRoot":"../../../../src","sources":["games/candy-crush/CandyCrush.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,125 +1 @@
1
- "use strict";
2
-
3
- // Candy Crush Game Constants
4
- export const CANDY_CRUSH_GAME_CONFIG = {
5
- GRID_SIZE: 8,
6
- CANDY_TYPES: 6,
7
- MIN_MATCH: 3,
8
- ANIMATION_DURATION: 300,
9
- FALL_DURATION: 400,
10
- SWAP_DURATION: 200,
11
- POINTS_PER_CANDY: 10,
12
- COMBO_MULTIPLIER: 1.5,
13
- SPECIAL_CANDY_THRESHOLD: 4
14
- };
15
- export const CANDY_COLORS = ['#FF3B30',
16
- // Bright Red
17
- '#34C759',
18
- // Bright Green
19
- '#007AFF',
20
- // Bright Blue
21
- '#FFCC00',
22
- // Bright Yellow
23
- '#9D4EDD',
24
- // Bright Purple (replaced cyan)
25
- '#FF6B9D' // Bright Pink
26
- ];
27
- export const CANDY_TYPES = {
28
- NORMAL: 'normal',
29
- STRIPED_HORIZONTAL: 'striped_h',
30
- STRIPED_VERTICAL: 'striped_v',
31
- WRAPPED: 'wrapped',
32
- COLOR_BOMB: 'color_bomb'
33
- };
34
- export const CANDY_CRUSH_COLORS = {
35
- BACKGROUND: '#2C3E50',
36
- GRID_BACKGROUND: 'rgba(255, 149, 0, 0.1)',
37
- GRID_BORDER: 'rgba(255, 149, 0, 0.3)',
38
- SELECTED: 'rgba(255, 149, 0, 0.5)',
39
- BUTTON_PRIMARY: '#FF9500',
40
- BUTTON_SECONDARY: '#E68600',
41
- SCORE_BACKGROUND: 'rgba(255, 149, 0, 0.4)',
42
- SCORE_TEXT: '#FFFFFF',
43
- TIME_GOOD: '#FF9500',
44
- TIME_WARNING: '#FF9500',
45
- TIME_CRITICAL: '#FF9500',
46
- COMBO_TEXT: '#FF9500',
47
- MODAL_PRIMARY: 'rgba(255, 149, 0, 0.95)',
48
- MODAL_BORDER: 'rgba(230, 134, 0, 0.9)',
49
- MODAL_BUTTON: '#FF9500',
50
- MODAL_BUTTON_BORDER: '#E68600'
51
- };
52
- export const DIFFICULTY_CONFIG = {
53
- easy: {
54
- gameDuration: 60,
55
- // 1 minute
56
- candyTypes: 4
57
- },
58
- medium: {
59
- gameDuration: 180,
60
- // 3 minutes
61
- candyTypes: 5
62
- },
63
- hard: {
64
- gameDuration: 300,
65
- // 5 minutes
66
- candyTypes: 6
67
- }
68
- };
69
- export const CANDY_CRUSH_SOUNDS = {
70
- MATCH: {
71
- text: 'Pop!',
72
- pitch: 1.2,
73
- rate: 1.5
74
- },
75
- SWAP: {
76
- text: 'Swap',
77
- pitch: 1.0,
78
- rate: 1.8
79
- },
80
- SPECIAL: {
81
- text: 'Boom!',
82
- pitch: 1.5,
83
- rate: 2.0
84
- },
85
- COMBO: {
86
- text: 'Combo!',
87
- pitch: 1.8,
88
- rate: 2.2
89
- },
90
- WIN: {
91
- text: 'Victory!',
92
- pitch: 1.6,
93
- rate: 1.8
94
- },
95
- LOSE: {
96
- text: 'Game Over',
97
- pitch: 0.8,
98
- rate: 1.2
99
- }
100
- };
101
-
102
- // Theme for settings modal
103
- export const CANDY_CRUSH_THEME = {
104
- backgroundColor: '#2C3E50',
105
- headerBackgroundColor: '#FF9500',
106
- headerTextColor: '#FFFFFF',
107
- sectionBackgroundColor: 'rgba(255, 149, 0, 0.15)',
108
- sectionTitleColor: '#FF9500',
109
- buttonSelectedColor: '#FF9500',
110
- buttonUnselectedColor: 'rgba(255, 149, 0, 0.2)',
111
- buttonSelectedTextColor: '#FFFFFF',
112
- buttonUnselectedTextColor: '#FF9500',
113
- switchTrackColorFalse: 'rgba(255, 149, 0, 0.3)',
114
- switchTrackColorTrue: '#FF9500',
115
- switchThumbColor: '#FFFFFF',
116
- infoTextColor: 'rgba(255, 255, 255, 0.7)'
117
- };
118
-
119
- // Difficulty descriptions
120
- export const CANDY_CRUSH_DIFFICULTY_DESCRIPTIONS = {
121
- easy: '1 minute • 4 candy types',
122
- medium: '3 minutes • 5 candy types',
123
- hard: '5 minutes • 6 candy types'
124
- };
125
- //# sourceMappingURL=CandyCrushConstants.js.map
1
+ "use strict";export const CANDY_CRUSH_GAME_CONFIG ={GRID_SIZE:8,CANDY_TYPES:6,MIN_MATCH:3,ANIMATION_DURATION:300,FALL_DURATION:400,SWAP_DURATION:200,POINTS_PER_CANDY:10,COMBO_MULTIPLIER:1.5,SPECIAL_CANDY_THRESHOLD:4};export const CANDY_COLORS = ['#FF3B30','#34C759','#007AFF','#FFCC00','#9D4EDD','#FF6B9D' ];export const CANDY_TYPES ={NORMAL:'normal',STRIPED_HORIZONTAL:'striped_h',STRIPED_VERTICAL:'striped_v',WRAPPED:'wrapped',COLOR_BOMB:'color_bomb'};export const CANDY_CRUSH_COLORS ={BACKGROUND:'#2C3E50',GRID_BACKGROUND:'rgba(255,149,0,0.1)',GRID_BORDER:'rgba(255,149,0,0.3)',SELECTED:'rgba(255,149,0,0.5)',BUTTON_PRIMARY:'#FF9500',BUTTON_SECONDARY:'#E68600',SCORE_BACKGROUND:'rgba(255,149,0,0.4)',SCORE_TEXT:'#FFFFFF',TIME_GOOD:'#FF9500',TIME_WARNING:'#FF9500',TIME_CRITICAL:'#FF9500',COMBO_TEXT:'#FF9500',MODAL_PRIMARY:'rgba(255,149,0,0.95)',MODAL_BORDER:'rgba(230,134,0,0.9)',MODAL_BUTTON:'#FF9500',MODAL_BUTTON_BORDER:'#E68600'};export const DIFFICULTY_CONFIG ={easy:{gameDuration:60,candyTypes:4},medium:{gameDuration:180,candyTypes:5},hard:{gameDuration:300,candyTypes:6}};export const CANDY_CRUSH_SOUNDS ={MATCH:{text:'Pop!',pitch:1.2,rate:1.5},SWAP:{text:'Swap',pitch:1.0,rate:1.8},SPECIAL:{text:'Boom!',pitch:1.5,rate:2.0},COMBO:{text:'Combo!',pitch:1.8,rate:2.2},WIN:{text:'Victory!',pitch:1.6,rate:1.8},LOSE:{text:'Game Over',pitch:0.8,rate:1.2}};export const CANDY_CRUSH_THEME ={backgroundColor:'rgba(0,0,0,0.7)',headerBackgroundColor:'#FF9500',headerTextColor:'#ffffff',sectionBackgroundColor:'rgba(255,149,0,0.15)',sectionTitleColor:'#FF9500',buttonSelectedColor:'#FF9500',buttonUnselectedColor:'rgba(255,255,255,0.2)',buttonSelectedTextColor:'#ffffff',buttonUnselectedTextColor:'rgba(255,255,255,0.7)',switchTrackColorFalse:'rgba(255,149,0,0.3)',switchTrackColorTrue:'#FF9500',switchThumbColor:'#ffffff',infoTextColor:'rgba(255,255,255,0.9)'};export const CANDY_CRUSH_DIFFICULTY_DESCRIPTIONS ={easy:'1 minute • 4 candy types',medium:'3 minutes • 5 candy types',hard:'5 minutes • 6 candy types'};
@@ -1 +1 @@
1
- {"version":3,"names":["CANDY_CRUSH_GAME_CONFIG","GRID_SIZE","CANDY_TYPES","MIN_MATCH","ANIMATION_DURATION","FALL_DURATION","SWAP_DURATION","POINTS_PER_CANDY","COMBO_MULTIPLIER","SPECIAL_CANDY_THRESHOLD","CANDY_COLORS","NORMAL","STRIPED_HORIZONTAL","STRIPED_VERTICAL","WRAPPED","COLOR_BOMB","CANDY_CRUSH_COLORS","BACKGROUND","GRID_BACKGROUND","GRID_BORDER","SELECTED","BUTTON_PRIMARY","BUTTON_SECONDARY","SCORE_BACKGROUND","SCORE_TEXT","TIME_GOOD","TIME_WARNING","TIME_CRITICAL","COMBO_TEXT","MODAL_PRIMARY","MODAL_BORDER","MODAL_BUTTON","MODAL_BUTTON_BORDER","DIFFICULTY_CONFIG","easy","gameDuration","candyTypes","medium","hard","CANDY_CRUSH_SOUNDS","MATCH","text","pitch","rate","SWAP","SPECIAL","COMBO","WIN","LOSE","CANDY_CRUSH_THEME","backgroundColor","headerBackgroundColor","headerTextColor","sectionBackgroundColor","sectionTitleColor","buttonSelectedColor","buttonUnselectedColor","buttonSelectedTextColor","buttonUnselectedTextColor","switchTrackColorFalse","switchTrackColorTrue","switchThumbColor","infoTextColor","CANDY_CRUSH_DIFFICULTY_DESCRIPTIONS"],"sourceRoot":"../../../../src","sources":["games/candy-crush/CandyCrushConstants.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CANDY_CRUSH_GAME_CONFIG","GRID_SIZE","CANDY_TYPES","MIN_MATCH","ANIMATION_DURATION","FALL_DURATION","SWAP_DURATION","POINTS_PER_CANDY","COMBO_MULTIPLIER","SPECIAL_CANDY_THRESHOLD","CANDY_COLORS","NORMAL","STRIPED_HORIZONTAL","STRIPED_VERTICAL","WRAPPED","COLOR_BOMB","CANDY_CRUSH_COLORS","BACKGROUND","GRID_BACKGROUND","GRID_BORDER","SELECTED","BUTTON_PRIMARY","BUTTON_SECONDARY","SCORE_BACKGROUND","SCORE_TEXT","TIME_GOOD","TIME_WARNING","TIME_CRITICAL","COMBO_TEXT","MODAL_PRIMARY","MODAL_BORDER","MODAL_BUTTON","MODAL_BUTTON_BORDER","DIFFICULTY_CONFIG","easy","gameDuration","candyTypes","medium","hard","CANDY_CRUSH_SOUNDS","MATCH","text","pitch","rate","SWAP","SPECIAL","COMBO","WIN","LOSE","CANDY_CRUSH_THEME","backgroundColor","headerBackgroundColor","headerTextColor","sectionBackgroundColor","sectionTitleColor","buttonSelectedColor","buttonUnselectedColor","buttonSelectedTextColor","buttonUnselectedTextColor","switchTrackColorFalse","switchTrackColorTrue","switchThumbColor","infoTextColor","CANDY_CRUSH_DIFFICULTY_DESCRIPTIONS"],"sourceRoot":"../../../../src","sources":["games/candy-crush/CandyCrushConstants.ts"],"mappings":"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","ignoreList":[]}