react-native-games 0.7.0 → 1.0.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.
- package/README.md +507 -84
- package/lib/module/games/balloon-blaster/BalloonBlaster.js +13 -21
- package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
- package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +1 -1
- package/lib/module/games/balloon-blaster/components/GameArea.js +1 -1
- package/lib/module/games/balloon-blaster/components/GameArea.js.map +1 -1
- package/lib/module/games/balloon-blaster/components/GameBackground.js +24 -17
- package/lib/module/games/balloon-blaster/components/GameBackground.js.map +1 -1
- package/lib/module/games/balloon-blaster/components/ScoreBoard.js +47 -47
- package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/candy-crush/CandyCrush.js +131 -0
- package/lib/module/games/candy-crush/CandyCrush.js.map +1 -0
- package/lib/module/games/candy-crush/CandyCrushConstants.js +125 -0
- package/lib/module/games/candy-crush/CandyCrushConstants.js.map +1 -0
- package/lib/module/games/candy-crush/CandyCrushService.js +370 -0
- package/lib/module/games/candy-crush/CandyCrushService.js.map +1 -0
- package/lib/module/games/candy-crush/CandyCrushStore.js +303 -0
- package/lib/module/games/candy-crush/CandyCrushStore.js.map +1 -0
- package/lib/module/games/candy-crush/components/CandyItem.js +191 -0
- package/lib/module/games/candy-crush/components/CandyItem.js.map +1 -0
- package/lib/module/games/candy-crush/components/GameBackground.js +85 -0
- package/lib/module/games/candy-crush/components/GameBackground.js.map +1 -0
- package/lib/module/games/candy-crush/components/GameGrid.js +314 -0
- package/lib/module/games/candy-crush/components/GameGrid.js.map +1 -0
- package/lib/module/games/candy-crush/components/ScoreBoard.js +79 -0
- package/lib/module/games/candy-crush/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/candy-crush/components/index.js +7 -0
- package/lib/module/games/candy-crush/components/index.js.map +1 -0
- package/lib/module/games/candy-crush/index.js +6 -0
- package/lib/module/games/candy-crush/index.js.map +1 -0
- package/lib/module/games/colors-sort/ColorsSort.js +143 -0
- package/lib/module/games/colors-sort/ColorsSort.js.map +1 -0
- package/lib/module/games/colors-sort/ColorsSortConstants.js +72 -0
- package/lib/module/games/colors-sort/ColorsSortConstants.js.map +1 -0
- package/lib/module/games/colors-sort/ColorsSortService.js +255 -0
- package/lib/module/games/colors-sort/ColorsSortService.js.map +1 -0
- package/lib/module/games/colors-sort/ColorsSortStore.js +257 -0
- package/lib/module/games/colors-sort/ColorsSortStore.js.map +1 -0
- package/lib/module/games/colors-sort/components/ColorContainer.js +140 -0
- package/lib/module/games/colors-sort/components/ColorContainer.js.map +1 -0
- package/lib/module/games/colors-sort/components/GameBackground.js +135 -0
- package/lib/module/games/colors-sort/components/GameBackground.js.map +1 -0
- package/lib/module/games/colors-sort/components/ScoreBoard.js +70 -0
- package/lib/module/games/colors-sort/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/colors-sort/components/index.js +6 -0
- package/lib/module/games/colors-sort/components/index.js.map +1 -0
- package/lib/module/games/dino-jump/DinoJump.js +209 -0
- package/lib/module/games/dino-jump/DinoJump.js.map +1 -0
- package/lib/module/games/dino-jump/DinoJumpConstants.js +189 -0
- package/lib/module/games/dino-jump/DinoJumpConstants.js.map +1 -0
- package/lib/module/games/dino-jump/DinoJumpService.js +270 -0
- package/lib/module/games/dino-jump/DinoJumpService.js.map +1 -0
- package/lib/module/games/dino-jump/DinoJumpStore.js +381 -0
- package/lib/module/games/dino-jump/DinoJumpStore.js.map +1 -0
- package/lib/module/games/dino-jump/components/DinoSprite.js +418 -0
- package/lib/module/games/dino-jump/components/DinoSprite.js.map +1 -0
- package/lib/module/games/dino-jump/components/GameArea.js +68 -0
- package/lib/module/games/dino-jump/components/GameArea.js.map +1 -0
- package/lib/module/games/dino-jump/components/GameBackground.js +444 -0
- package/lib/module/games/dino-jump/components/GameBackground.js.map +1 -0
- package/lib/module/games/dino-jump/components/ObstacleSprite.js +306 -0
- package/lib/module/games/dino-jump/components/ObstacleSprite.js.map +1 -0
- package/lib/module/games/dino-jump/components/ScoreBoard.js +105 -0
- package/lib/module/games/dino-jump/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/dino-jump/components/StarSprite.js +45 -0
- package/lib/module/games/dino-jump/components/StarSprite.js.map +1 -0
- package/lib/module/games/dino-jump/components/index.js +9 -0
- package/lib/module/games/dino-jump/components/index.js.map +1 -0
- package/lib/module/games/flappy-bird/FlappyBird.js +126 -0
- package/lib/module/games/flappy-bird/FlappyBird.js.map +1 -0
- package/lib/module/games/flappy-bird/FlappyBirdConstants.js +90 -0
- package/lib/module/games/flappy-bird/FlappyBirdConstants.js.map +1 -0
- package/lib/module/games/flappy-bird/FlappyBirdStore.js +300 -0
- package/lib/module/games/flappy-bird/FlappyBirdStore.js.map +1 -0
- package/lib/module/games/flappy-bird/components/Bird.js +87 -0
- package/lib/module/games/flappy-bird/components/Bird.js.map +1 -0
- package/lib/module/games/flappy-bird/components/GameArea.js +87 -0
- package/lib/module/games/flappy-bird/components/GameArea.js.map +1 -0
- package/lib/module/games/flappy-bird/components/GameBackground.js +79 -0
- package/lib/module/games/flappy-bird/components/GameBackground.js.map +1 -0
- package/lib/module/games/flappy-bird/components/Pipes.js +172 -0
- package/lib/module/games/flappy-bird/components/Pipes.js.map +1 -0
- package/lib/module/games/flappy-bird/components/ScoreBoard.js +73 -0
- package/lib/module/games/flappy-bird/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/flappy-bird/components/index.js +8 -0
- package/lib/module/games/flappy-bird/components/index.js.map +1 -0
- package/lib/module/games/fruit-merger/FruitMerger.js +120 -0
- package/lib/module/games/fruit-merger/FruitMerger.js.map +1 -0
- package/lib/module/games/fruit-merger/FruitMergerConstants.js +119 -0
- package/lib/module/games/fruit-merger/FruitMergerConstants.js.map +1 -0
- package/lib/module/games/fruit-merger/FruitMergerService.js +13 -0
- package/lib/module/games/fruit-merger/FruitMergerService.js.map +1 -0
- package/lib/module/games/fruit-merger/FruitMergerStore.js +315 -0
- package/lib/module/games/fruit-merger/FruitMergerStore.js.map +1 -0
- package/lib/module/games/fruit-merger/components/FruitItem.js +102 -0
- package/lib/module/games/fruit-merger/components/FruitItem.js.map +1 -0
- package/lib/module/games/fruit-merger/components/GameArea.js +103 -0
- package/lib/module/games/fruit-merger/components/GameArea.js.map +1 -0
- package/lib/module/games/fruit-merger/components/GameBackground.js +498 -0
- package/lib/module/games/fruit-merger/components/GameBackground.js.map +1 -0
- package/lib/module/games/fruit-merger/components/ScoreBoard.js +58 -0
- package/lib/module/games/fruit-merger/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/fruit-merger/components/index.js +7 -0
- package/lib/module/games/fruit-merger/components/index.js.map +1 -0
- package/lib/module/games/fruit-ninja/FruitNinja.js +14 -22
- package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -1
- package/lib/module/games/fruit-ninja/FruitNinjaStore.js +1 -1
- package/lib/module/games/fruit-ninja/components/GameArea.js +1 -1
- package/lib/module/games/fruit-ninja/components/GameArea.js.map +1 -1
- package/lib/module/games/fruit-ninja/components/GameBackground.js +70 -45
- package/lib/module/games/fruit-ninja/components/GameBackground.js.map +1 -1
- package/lib/module/games/fruit-ninja/components/ScoreBoard.js +47 -46
- package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/game-2048/Game2048.js +149 -0
- package/lib/module/games/game-2048/Game2048.js.map +1 -0
- package/lib/module/games/game-2048/Game2048Constants.js +263 -0
- package/lib/module/games/game-2048/Game2048Constants.js.map +1 -0
- package/lib/module/games/game-2048/Game2048Service.js +457 -0
- package/lib/module/games/game-2048/Game2048Service.js.map +1 -0
- package/lib/module/games/game-2048/Game2048Store.js +236 -0
- package/lib/module/games/game-2048/Game2048Store.js.map +1 -0
- package/lib/module/games/game-2048/components/GameBackground.js +247 -0
- package/lib/module/games/game-2048/components/GameBackground.js.map +1 -0
- package/lib/module/games/game-2048/components/GameGrid.js +139 -0
- package/lib/module/games/game-2048/components/GameGrid.js.map +1 -0
- package/lib/module/games/game-2048/components/GameTile.js +72 -0
- package/lib/module/games/game-2048/components/GameTile.js.map +1 -0
- package/lib/module/games/game-2048/components/ScoreBoard.js +52 -0
- package/lib/module/games/game-2048/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/game-2048/components/index.js +7 -0
- package/lib/module/games/game-2048/components/index.js.map +1 -0
- package/lib/module/games/maze-runner/MazeRunner.js +51 -41
- package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
- package/lib/module/games/maze-runner/MazeRunnerService.js +19 -17
- package/lib/module/games/maze-runner/MazeRunnerService.js.map +1 -1
- package/lib/module/games/maze-runner/components/ScoreBoard.js +32 -42
- package/lib/module/games/maze-runner/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/popit-fidget/PopitFidget.js +57 -66
- package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -1
- package/lib/module/games/popit-fidget/PopitFidgetStore.js +6 -44
- package/lib/module/games/popit-fidget/PopitFidgetStore.js.map +1 -1
- package/lib/module/games/popit-fidget/components/ScoreBoard.js +31 -45
- package/lib/module/games/popit-fidget/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/sliding-numbers/SlidingNumbers.js +159 -0
- package/lib/module/games/sliding-numbers/SlidingNumbers.js.map +1 -0
- package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js +207 -0
- package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js.map +1 -0
- package/lib/module/games/sliding-numbers/SlidingNumbersService.js +248 -0
- package/lib/module/games/sliding-numbers/SlidingNumbersService.js.map +1 -0
- package/lib/module/games/sliding-numbers/SlidingNumbersStore.js +274 -0
- package/lib/module/games/sliding-numbers/SlidingNumbersStore.js.map +1 -0
- package/lib/module/games/sliding-numbers/components/GameBackground.js +259 -0
- package/lib/module/games/sliding-numbers/components/GameBackground.js.map +1 -0
- package/lib/module/games/sliding-numbers/components/NumbersGrid.js +174 -0
- package/lib/module/games/sliding-numbers/components/NumbersGrid.js.map +1 -0
- package/lib/module/games/sliding-numbers/components/NumbersTile.js +116 -0
- package/lib/module/games/sliding-numbers/components/NumbersTile.js.map +1 -0
- package/lib/module/games/sliding-numbers/components/ScoreBoard.js +64 -0
- package/lib/module/games/sliding-numbers/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/sliding-numbers/components/index.js +7 -0
- package/lib/module/games/sliding-numbers/components/index.js.map +1 -0
- package/lib/module/games/snake/Snake.js +189 -0
- package/lib/module/games/snake/Snake.js.map +1 -0
- package/lib/module/games/snake/SnakeConstants.js +138 -0
- package/lib/module/games/snake/SnakeConstants.js.map +1 -0
- package/lib/module/games/snake/SnakeService.js +148 -0
- package/lib/module/games/snake/SnakeService.js.map +1 -0
- package/lib/module/games/snake/SnakeStore.js +182 -0
- package/lib/module/games/snake/SnakeStore.js.map +1 -0
- package/lib/module/games/snake/components/GameBackground.js +221 -0
- package/lib/module/games/snake/components/GameBackground.js.map +1 -0
- package/lib/module/games/snake/components/GameGrid.js +153 -0
- package/lib/module/games/snake/components/GameGrid.js.map +1 -0
- package/lib/module/games/snake/components/ScoreBoard.js +51 -0
- package/lib/module/games/snake/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/snake/components/index.js +6 -0
- package/lib/module/games/snake/components/index.js.map +1 -0
- package/lib/module/games/snake/index.js +6 -0
- package/lib/module/games/snake/index.js.map +1 -0
- package/lib/module/games/space-fighter/SpaceFighter.js +22 -26
- package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -1
- package/lib/module/games/space-fighter/SpaceFighterService.js +7 -6
- package/lib/module/games/space-fighter/SpaceFighterService.js.map +1 -1
- package/lib/module/games/space-fighter/SpaceFighterStore.js +25 -11
- package/lib/module/games/space-fighter/SpaceFighterStore.js.map +1 -1
- package/lib/module/games/space-fighter/components/GameArea.js +1 -7
- package/lib/module/games/space-fighter/components/GameArea.js.map +1 -1
- package/lib/module/games/space-fighter/components/ScoreBoard.js +47 -48
- package/lib/module/games/space-fighter/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/whack-a-mole/WhackAMole.js +17 -10
- package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -1
- package/lib/module/games/whack-a-mole/WhackAMoleStore.js +1 -1
- package/lib/module/games/whack-a-mole/components/GameBackground.js +37 -30
- package/lib/module/games/whack-a-mole/components/GameBackground.js.map +1 -1
- package/lib/module/games/whack-a-mole/components/ScoreBoard.js +32 -38
- package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -1
- package/lib/module/helpers/AnimationFrame.js.map +1 -0
- package/lib/module/helpers/AnimationTracker.js.map +1 -0
- package/lib/module/helpers/ErrorHandler.js.map +1 -0
- package/lib/module/helpers/GameControlButton.js.map +1 -0
- package/lib/module/{shared/helpers → helpers}/GameOverModal.js +6 -3
- package/lib/module/helpers/GameOverModal.js.map +1 -0
- package/lib/module/{shared/helpers → helpers}/GameSettingsModal.js +5 -5
- package/lib/module/helpers/GameSettingsModal.js.map +1 -0
- package/lib/module/{shared/helpers → helpers}/ParticleBlast.js +3 -2
- package/lib/module/helpers/ParticleBlast.js.map +1 -0
- package/lib/module/helpers/ScoreBoardContainer.js +34 -0
- package/lib/module/helpers/ScoreBoardContainer.js.map +1 -0
- package/lib/module/{shared/helpers → helpers}/index.js +1 -1
- package/lib/module/helpers/index.js.map +1 -0
- package/lib/module/index.js +9 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/services/GamesConstants.js +100 -5
- package/lib/module/services/GamesConstants.js.map +1 -1
- package/lib/module/services/GamesService.js +108 -42
- package/lib/module/services/GamesService.js.map +1 -1
- package/lib/module/services/SoundsService.js +132 -1
- package/lib/module/services/SoundsService.js.map +1 -1
- package/lib/module/services/UtilsService.js +32 -0
- package/lib/module/services/UtilsService.js.map +1 -0
- package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts +1 -1
- package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
- package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts +1 -0
- package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts.map +1 -1
- package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts +5 -1
- package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/candy-crush/CandyCrush.d.ts +4 -0
- package/lib/typescript/src/games/candy-crush/CandyCrush.d.ts.map +1 -0
- package/lib/typescript/src/games/candy-crush/CandyCrushConstants.d.ts +104 -0
- package/lib/typescript/src/games/candy-crush/CandyCrushConstants.d.ts.map +1 -0
- package/lib/typescript/src/games/candy-crush/CandyCrushService.d.ts +40 -0
- package/lib/typescript/src/games/candy-crush/CandyCrushService.d.ts.map +1 -0
- package/lib/typescript/src/games/candy-crush/CandyCrushStore.d.ts +48 -0
- package/lib/typescript/src/games/candy-crush/CandyCrushStore.d.ts.map +1 -0
- package/lib/typescript/src/games/candy-crush/components/CandyItem.d.ts +13 -0
- package/lib/typescript/src/games/candy-crush/components/CandyItem.d.ts.map +1 -0
- package/lib/typescript/src/games/candy-crush/components/GameBackground.d.ts +5 -0
- package/lib/typescript/src/games/candy-crush/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/candy-crush/components/GameGrid.d.ts +3 -0
- package/lib/typescript/src/games/candy-crush/components/GameGrid.d.ts.map +1 -0
- package/lib/typescript/src/games/candy-crush/components/ScoreBoard.d.ts +6 -0
- package/lib/typescript/src/games/candy-crush/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/candy-crush/components/index.d.ts +5 -0
- package/lib/typescript/src/games/candy-crush/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/candy-crush/index.d.ts +4 -0
- package/lib/typescript/src/games/candy-crush/index.d.ts.map +1 -0
- package/lib/typescript/src/games/colors-sort/ColorsSort.d.ts +4 -0
- package/lib/typescript/src/games/colors-sort/ColorsSort.d.ts.map +1 -0
- package/lib/typescript/src/games/colors-sort/ColorsSortConstants.d.ts +54 -0
- package/lib/typescript/src/games/colors-sort/ColorsSortConstants.d.ts.map +1 -0
- package/lib/typescript/src/games/colors-sort/ColorsSortService.d.ts +66 -0
- package/lib/typescript/src/games/colors-sort/ColorsSortService.d.ts.map +1 -0
- package/lib/typescript/src/games/colors-sort/ColorsSortStore.d.ts +48 -0
- package/lib/typescript/src/games/colors-sort/ColorsSortStore.d.ts.map +1 -0
- package/lib/typescript/src/games/colors-sort/components/ColorContainer.d.ts +11 -0
- package/lib/typescript/src/games/colors-sort/components/ColorContainer.d.ts.map +1 -0
- package/lib/typescript/src/games/colors-sort/components/GameBackground.d.ts +7 -0
- package/lib/typescript/src/games/colors-sort/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/colors-sort/components/ScoreBoard.d.ts +7 -0
- package/lib/typescript/src/games/colors-sort/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/colors-sort/components/index.d.ts +4 -0
- package/lib/typescript/src/games/colors-sort/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/dino-jump/DinoJump.d.ts +4 -0
- package/lib/typescript/src/games/dino-jump/DinoJump.d.ts.map +1 -0
- package/lib/typescript/src/games/dino-jump/DinoJumpConstants.d.ts +97 -0
- package/lib/typescript/src/games/dino-jump/DinoJumpConstants.d.ts.map +1 -0
- package/lib/typescript/src/games/dino-jump/DinoJumpService.d.ts +40 -0
- package/lib/typescript/src/games/dino-jump/DinoJumpService.d.ts.map +1 -0
- package/lib/typescript/src/games/dino-jump/DinoJumpStore.d.ts +103 -0
- package/lib/typescript/src/games/dino-jump/DinoJumpStore.d.ts.map +1 -0
- package/lib/typescript/src/games/dino-jump/components/DinoSprite.d.ts +3 -0
- package/lib/typescript/src/games/dino-jump/components/DinoSprite.d.ts.map +1 -0
- package/lib/typescript/src/games/dino-jump/components/GameArea.d.ts +8 -0
- package/lib/typescript/src/games/dino-jump/components/GameArea.d.ts.map +1 -0
- package/lib/typescript/src/games/dino-jump/components/GameBackground.d.ts +8 -0
- package/lib/typescript/src/games/dino-jump/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/dino-jump/components/ObstacleSprite.d.ts +3 -0
- package/lib/typescript/src/games/dino-jump/components/ObstacleSprite.d.ts.map +1 -0
- package/lib/typescript/src/games/dino-jump/components/ScoreBoard.d.ts +7 -0
- package/lib/typescript/src/games/dino-jump/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/dino-jump/components/StarSprite.d.ts +3 -0
- package/lib/typescript/src/games/dino-jump/components/StarSprite.d.ts.map +1 -0
- package/lib/typescript/src/games/dino-jump/components/index.d.ts +7 -0
- package/lib/typescript/src/games/dino-jump/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts +4 -0
- package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts.map +1 -0
- package/lib/typescript/src/games/flappy-bird/FlappyBirdConstants.d.ts +83 -0
- package/lib/typescript/src/games/flappy-bird/FlappyBirdConstants.d.ts.map +1 -0
- package/lib/typescript/src/games/flappy-bird/FlappyBirdStore.d.ts +53 -0
- package/lib/typescript/src/games/flappy-bird/FlappyBirdStore.d.ts.map +1 -0
- package/lib/typescript/src/games/flappy-bird/components/Bird.d.ts +8 -0
- package/lib/typescript/src/games/flappy-bird/components/Bird.d.ts.map +1 -0
- package/lib/typescript/src/games/flappy-bird/components/GameArea.d.ts +8 -0
- package/lib/typescript/src/games/flappy-bird/components/GameArea.d.ts.map +1 -0
- package/lib/typescript/src/games/flappy-bird/components/GameBackground.d.ts +8 -0
- package/lib/typescript/src/games/flappy-bird/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/flappy-bird/components/Pipes.d.ts +9 -0
- package/lib/typescript/src/games/flappy-bird/components/Pipes.d.ts.map +1 -0
- package/lib/typescript/src/games/flappy-bird/components/ScoreBoard.d.ts +7 -0
- package/lib/typescript/src/games/flappy-bird/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/flappy-bird/components/index.d.ts +6 -0
- package/lib/typescript/src/games/flappy-bird/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts +4 -0
- package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-merger/FruitMergerConstants.d.ts +115 -0
- package/lib/typescript/src/games/fruit-merger/FruitMergerConstants.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-merger/FruitMergerService.d.ts +5 -0
- package/lib/typescript/src/games/fruit-merger/FruitMergerService.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-merger/FruitMergerStore.d.ts +43 -0
- package/lib/typescript/src/games/fruit-merger/FruitMergerStore.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-merger/components/FruitItem.d.ts +10 -0
- package/lib/typescript/src/games/fruit-merger/components/FruitItem.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-merger/components/GameArea.d.ts +8 -0
- package/lib/typescript/src/games/fruit-merger/components/GameArea.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-merger/components/GameBackground.d.ts +8 -0
- package/lib/typescript/src/games/fruit-merger/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-merger/components/ScoreBoard.d.ts +7 -0
- package/lib/typescript/src/games/fruit-merger/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-merger/components/index.d.ts +5 -0
- package/lib/typescript/src/games/fruit-merger/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts +1 -1
- package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -1
- package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts +1 -0
- package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts.map +1 -1
- package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts +5 -1
- package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/game-2048/Game2048.d.ts +4 -0
- package/lib/typescript/src/games/game-2048/Game2048.d.ts.map +1 -0
- package/lib/typescript/src/games/game-2048/Game2048Constants.d.ts +163 -0
- package/lib/typescript/src/games/game-2048/Game2048Constants.d.ts.map +1 -0
- package/lib/typescript/src/games/game-2048/Game2048Service.d.ts +113 -0
- package/lib/typescript/src/games/game-2048/Game2048Service.d.ts.map +1 -0
- package/lib/typescript/src/games/game-2048/Game2048Store.d.ts +48 -0
- package/lib/typescript/src/games/game-2048/Game2048Store.d.ts.map +1 -0
- package/lib/typescript/src/games/game-2048/components/GameBackground.d.ts +7 -0
- package/lib/typescript/src/games/game-2048/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/game-2048/components/GameGrid.d.ts +7 -0
- package/lib/typescript/src/games/game-2048/components/GameGrid.d.ts.map +1 -0
- package/lib/typescript/src/games/game-2048/components/GameTile.d.ts +13 -0
- package/lib/typescript/src/games/game-2048/components/GameTile.d.ts.map +1 -0
- package/lib/typescript/src/games/game-2048/components/ScoreBoard.d.ts +7 -0
- package/lib/typescript/src/games/game-2048/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/game-2048/components/index.d.ts +5 -0
- package/lib/typescript/src/games/game-2048/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +1 -1
- package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
- package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts +1 -0
- package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts.map +1 -1
- package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts +1 -0
- package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts +1 -1
- package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -1
- package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +2 -5
- package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts.map +1 -1
- package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts +2 -2
- package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts +4 -0
- package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts.map +1 -0
- package/lib/typescript/src/games/sliding-numbers/SlidingNumbersConstants.d.ts +108 -0
- package/lib/typescript/src/games/sliding-numbers/SlidingNumbersConstants.d.ts.map +1 -0
- package/lib/typescript/src/games/sliding-numbers/SlidingNumbersService.d.ts +34 -0
- package/lib/typescript/src/games/sliding-numbers/SlidingNumbersService.d.ts.map +1 -0
- package/lib/typescript/src/games/sliding-numbers/SlidingNumbersStore.d.ts +56 -0
- package/lib/typescript/src/games/sliding-numbers/SlidingNumbersStore.d.ts.map +1 -0
- package/lib/typescript/src/games/sliding-numbers/components/GameBackground.d.ts +7 -0
- package/lib/typescript/src/games/sliding-numbers/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/sliding-numbers/components/NumbersGrid.d.ts +7 -0
- package/lib/typescript/src/games/sliding-numbers/components/NumbersGrid.d.ts.map +1 -0
- package/lib/typescript/src/games/sliding-numbers/components/NumbersTile.d.ts +11 -0
- package/lib/typescript/src/games/sliding-numbers/components/NumbersTile.d.ts.map +1 -0
- package/lib/typescript/src/games/sliding-numbers/components/ScoreBoard.d.ts +7 -0
- package/lib/typescript/src/games/sliding-numbers/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/sliding-numbers/components/index.d.ts +5 -0
- package/lib/typescript/src/games/sliding-numbers/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/snake/Snake.d.ts +4 -0
- package/lib/typescript/src/games/snake/Snake.d.ts.map +1 -0
- package/lib/typescript/src/games/snake/SnakeConstants.d.ts +93 -0
- package/lib/typescript/src/games/snake/SnakeConstants.d.ts.map +1 -0
- package/lib/typescript/src/games/snake/SnakeService.d.ts +30 -0
- package/lib/typescript/src/games/snake/SnakeService.d.ts.map +1 -0
- package/lib/typescript/src/games/snake/SnakeStore.d.ts +43 -0
- package/lib/typescript/src/games/snake/SnakeStore.d.ts.map +1 -0
- package/lib/typescript/src/games/snake/components/GameBackground.d.ts +5 -0
- package/lib/typescript/src/games/snake/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/snake/components/GameGrid.d.ts +3 -0
- package/lib/typescript/src/games/snake/components/GameGrid.d.ts.map +1 -0
- package/lib/typescript/src/games/snake/components/ScoreBoard.d.ts +7 -0
- package/lib/typescript/src/games/snake/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/snake/components/index.d.ts +4 -0
- package/lib/typescript/src/games/snake/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/snake/index.d.ts +4 -0
- package/lib/typescript/src/games/snake/index.d.ts.map +1 -0
- package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts +1 -1
- package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -1
- package/lib/typescript/src/games/space-fighter/SpaceFighterService.d.ts.map +1 -1
- package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts +2 -0
- package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts.map +1 -1
- package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts.map +1 -1
- package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts +5 -1
- package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts +1 -1
- package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -1
- package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts +1 -0
- package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts.map +1 -1
- package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts +1 -0
- package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/helpers/AnimationFrame.d.ts.map +1 -0
- package/lib/typescript/src/helpers/AnimationTracker.d.ts.map +1 -0
- package/lib/typescript/src/helpers/ErrorHandler.d.ts.map +1 -0
- package/lib/typescript/src/helpers/GameControlButton.d.ts.map +1 -0
- package/lib/typescript/src/{shared/helpers → helpers}/GameOverModal.d.ts +2 -0
- package/lib/typescript/src/helpers/GameOverModal.d.ts.map +1 -0
- package/lib/typescript/src/{shared/helpers → helpers}/GameSettingsModal.d.ts +1 -1
- package/lib/typescript/src/helpers/GameSettingsModal.d.ts.map +1 -0
- package/lib/typescript/src/helpers/ParticleBlast.d.ts.map +1 -0
- package/lib/typescript/src/helpers/ScoreBoardContainer.d.ts +9 -0
- package/lib/typescript/src/helpers/ScoreBoardContainer.d.ts.map +1 -0
- package/lib/typescript/src/{shared/helpers → helpers}/index.d.ts +2 -1
- package/lib/typescript/src/helpers/index.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +9 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/services/GamesConstants.d.ts +162 -0
- package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -1
- package/lib/typescript/src/services/GamesService.d.ts +3 -25
- package/lib/typescript/src/services/GamesService.d.ts.map +1 -1
- package/lib/typescript/src/services/SoundsService.d.ts +103 -0
- package/lib/typescript/src/services/SoundsService.d.ts.map +1 -1
- package/lib/typescript/src/services/UtilsService.d.ts +38 -0
- package/lib/typescript/src/services/UtilsService.d.ts.map +1 -0
- package/package.json +1 -1
- package/lib/module/shared/helpers/AnimationFrame.js.map +0 -1
- package/lib/module/shared/helpers/AnimationTracker.js.map +0 -1
- package/lib/module/shared/helpers/ErrorHandler.js.map +0 -1
- package/lib/module/shared/helpers/GameControlButton.js.map +0 -1
- package/lib/module/shared/helpers/GameOverModal.js.map +0 -1
- package/lib/module/shared/helpers/GameSettingsModal.js.map +0 -1
- package/lib/module/shared/helpers/ParticleBlast.js.map +0 -1
- package/lib/module/shared/helpers/ResponsiveScoreBoard.js +0 -81
- package/lib/module/shared/helpers/ResponsiveScoreBoard.js.map +0 -1
- package/lib/module/shared/helpers/index.js.map +0 -1
- package/lib/typescript/src/shared/helpers/AnimationFrame.d.ts.map +0 -1
- package/lib/typescript/src/shared/helpers/AnimationTracker.d.ts.map +0 -1
- package/lib/typescript/src/shared/helpers/ErrorHandler.d.ts.map +0 -1
- package/lib/typescript/src/shared/helpers/GameControlButton.d.ts.map +0 -1
- package/lib/typescript/src/shared/helpers/GameOverModal.d.ts.map +0 -1
- package/lib/typescript/src/shared/helpers/GameSettingsModal.d.ts.map +0 -1
- package/lib/typescript/src/shared/helpers/ParticleBlast.d.ts.map +0 -1
- package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts +0 -42
- package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts.map +0 -1
- package/lib/typescript/src/shared/helpers/index.d.ts.map +0 -1
- /package/lib/module/{shared/helpers → helpers}/AnimationFrame.js +0 -0
- /package/lib/module/{shared/helpers → helpers}/AnimationTracker.js +0 -0
- /package/lib/module/{shared/helpers → helpers}/ErrorHandler.js +0 -0
- /package/lib/module/{shared/helpers → helpers}/GameControlButton.js +0 -0
- /package/lib/typescript/src/{shared/helpers → helpers}/AnimationFrame.d.ts +0 -0
- /package/lib/typescript/src/{shared/helpers → helpers}/AnimationTracker.d.ts +0 -0
- /package/lib/typescript/src/{shared/helpers → helpers}/ErrorHandler.d.ts +0 -0
- /package/lib/typescript/src/{shared/helpers → helpers}/GameControlButton.d.ts +0 -0
- /package/lib/typescript/src/{shared/helpers → helpers}/ParticleBlast.d.ts +0 -0
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useMemo, useRef, useEffect } from 'react';
|
|
4
|
+
import { View, StyleSheet, Dimensions } from 'react-native';
|
|
5
|
+
import { Canvas, RoundedRect, LinearGradient, vec, Shadow, Circle, Group } from '@shopify/react-native-skia';
|
|
6
|
+
import { useGrid, useSelectedCandy, useCandyCrushStore, useMatchedCandyIds, useFallingCandyIds } from "../CandyCrushStore.js";
|
|
7
|
+
import { CandyItem } from "./CandyItem.js";
|
|
8
|
+
import { CANDY_CRUSH_GAME_CONFIG, CANDY_CRUSH_COLORS } from "../CandyCrushConstants.js";
|
|
9
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
|
+
const {
|
|
11
|
+
width: screenWidth
|
|
12
|
+
} = Dimensions.get('window');
|
|
13
|
+
|
|
14
|
+
// Memoized GridRow component to prevent unnecessary re-renders
|
|
15
|
+
|
|
16
|
+
const GridRow = /*#__PURE__*/React.memo(({
|
|
17
|
+
row,
|
|
18
|
+
rowIndex,
|
|
19
|
+
candySize,
|
|
20
|
+
gap,
|
|
21
|
+
selectedCandyId,
|
|
22
|
+
matchedCandyIds,
|
|
23
|
+
fallingCandyIds,
|
|
24
|
+
onSwipe
|
|
25
|
+
}) => {
|
|
26
|
+
return /*#__PURE__*/_jsx(View, {
|
|
27
|
+
style: [styles.row, {
|
|
28
|
+
gap
|
|
29
|
+
}],
|
|
30
|
+
children: row.map((candy, colIndex) => {
|
|
31
|
+
if (!candy) {
|
|
32
|
+
return /*#__PURE__*/_jsx(View, {
|
|
33
|
+
style: [styles.cell, {
|
|
34
|
+
width: candySize,
|
|
35
|
+
height: candySize
|
|
36
|
+
}]
|
|
37
|
+
}, `empty-${rowIndex}-${colIndex}`);
|
|
38
|
+
}
|
|
39
|
+
const isSelected = selectedCandyId === candy.id;
|
|
40
|
+
const isMatched = matchedCandyIds.has(candy.id);
|
|
41
|
+
const isFalling = fallingCandyIds.has(candy.id);
|
|
42
|
+
const handleSwipe = direction => {
|
|
43
|
+
onSwipe(candy, direction);
|
|
44
|
+
};
|
|
45
|
+
return /*#__PURE__*/_jsx(View, {
|
|
46
|
+
style: [styles.cell, {
|
|
47
|
+
width: candySize,
|
|
48
|
+
height: candySize
|
|
49
|
+
}],
|
|
50
|
+
children: /*#__PURE__*/_jsx(CandyItem, {
|
|
51
|
+
candy: candy,
|
|
52
|
+
size: candySize,
|
|
53
|
+
isSelected: isSelected,
|
|
54
|
+
isMatched: isMatched,
|
|
55
|
+
isFalling: isFalling,
|
|
56
|
+
onSwipe: handleSwipe
|
|
57
|
+
})
|
|
58
|
+
}, candy.id);
|
|
59
|
+
})
|
|
60
|
+
}, `row-${rowIndex}`);
|
|
61
|
+
}, (prevProps, nextProps) => {
|
|
62
|
+
// If row array reference is the same, skip all checks (FASTEST PATH)
|
|
63
|
+
if (prevProps.row === nextProps.row) {
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Only re-render if row content actually changed
|
|
68
|
+
if (prevProps.row.length !== nextProps.row.length) return false;
|
|
69
|
+
if (prevProps.candySize !== nextProps.candySize) return false;
|
|
70
|
+
if (prevProps.gap !== nextProps.gap) return false;
|
|
71
|
+
|
|
72
|
+
// Only re-render if THIS ROW has the selected candy
|
|
73
|
+
const hadSelectedCandy = prevProps.row.some(c => c?.id === prevProps.selectedCandyId);
|
|
74
|
+
const hasSelectedCandy = nextProps.row.some(c => c?.id === nextProps.selectedCandyId);
|
|
75
|
+
if (hadSelectedCandy !== hasSelectedCandy || hadSelectedCandy && prevProps.selectedCandyId !== nextProps.selectedCandyId) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Check if any candy in THIS ROW is affected by matched/falling states
|
|
80
|
+
for (let i = 0; i < prevProps.row.length; i++) {
|
|
81
|
+
const candy = prevProps.row[i];
|
|
82
|
+
if (candy) {
|
|
83
|
+
const wasMatched = prevProps.matchedCandyIds.has(candy.id);
|
|
84
|
+
const isMatched = nextProps.matchedCandyIds.has(candy.id);
|
|
85
|
+
const wasFalling = prevProps.fallingCandyIds.has(candy.id);
|
|
86
|
+
const isFalling = nextProps.fallingCandyIds.has(candy.id);
|
|
87
|
+
if (wasMatched !== isMatched || wasFalling !== isFalling) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Check if any candy in the row changed
|
|
94
|
+
for (let i = 0; i < prevProps.row.length; i++) {
|
|
95
|
+
const prevCandy = prevProps.row[i];
|
|
96
|
+
const nextCandy = nextProps.row[i];
|
|
97
|
+
if (prevCandy?.id !== nextCandy?.id) return false;
|
|
98
|
+
if (prevCandy?.type !== nextCandy?.type) return false;
|
|
99
|
+
if (prevCandy?.row !== nextCandy?.row) return false;
|
|
100
|
+
if (prevCandy?.col !== nextCandy?.col) return false;
|
|
101
|
+
}
|
|
102
|
+
return true;
|
|
103
|
+
});
|
|
104
|
+
export const GameGrid = /*#__PURE__*/React.memo(() => {
|
|
105
|
+
const grid = useGrid();
|
|
106
|
+
const selectedCandy = useSelectedCandy();
|
|
107
|
+
const matchedCandyIds = useMatchedCandyIds();
|
|
108
|
+
const fallingCandyIds = useFallingCandyIds();
|
|
109
|
+
const selectCandy = useCandyCrushStore(state => state.selectCandy);
|
|
110
|
+
const selectedCandyId = selectedCandy?.id || null;
|
|
111
|
+
|
|
112
|
+
// Use ref to store grid without causing re-renders
|
|
113
|
+
const gridRef = useRef(grid);
|
|
114
|
+
useEffect(() => {
|
|
115
|
+
gridRef.current = grid;
|
|
116
|
+
}, [grid]);
|
|
117
|
+
|
|
118
|
+
// Handle swipe with stable reference (doesn't change on grid updates)
|
|
119
|
+
const handleSwipe = React.useCallback((candy, direction) => {
|
|
120
|
+
const currentGrid = gridRef.current;
|
|
121
|
+
let targetRow = candy.row;
|
|
122
|
+
let targetCol = candy.col;
|
|
123
|
+
switch (direction) {
|
|
124
|
+
case 'up':
|
|
125
|
+
targetRow = candy.row - 1;
|
|
126
|
+
break;
|
|
127
|
+
case 'down':
|
|
128
|
+
targetRow = candy.row + 1;
|
|
129
|
+
break;
|
|
130
|
+
case 'left':
|
|
131
|
+
targetCol = candy.col - 1;
|
|
132
|
+
break;
|
|
133
|
+
case 'right':
|
|
134
|
+
targetCol = candy.col + 1;
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// Check if target is within bounds
|
|
139
|
+
if (targetRow >= 0 && targetRow < currentGrid.length && targetCol >= 0 && currentGrid[0] && targetCol < currentGrid[0].length) {
|
|
140
|
+
const targetRowData = currentGrid[targetRow];
|
|
141
|
+
if (targetRowData) {
|
|
142
|
+
const targetCandy = targetRowData[targetCol];
|
|
143
|
+
if (targetCandy) {
|
|
144
|
+
// Simulate selecting source candy then target candy
|
|
145
|
+
selectCandy(candy);
|
|
146
|
+
setTimeout(() => selectCandy(targetCandy), 50);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}, [selectCandy]);
|
|
151
|
+
|
|
152
|
+
// Calculate grid dimensions (memoized once)
|
|
153
|
+
const gridCalculations = useMemo(() => {
|
|
154
|
+
const horizontalPadding = 40;
|
|
155
|
+
const availableWidth = screenWidth - horizontalPadding;
|
|
156
|
+
const gridSize = CANDY_CRUSH_GAME_CONFIG.GRID_SIZE;
|
|
157
|
+
const gap = 2;
|
|
158
|
+
const totalGaps = (gridSize - 1) * gap;
|
|
159
|
+
const candySize = (availableWidth - totalGaps) / gridSize;
|
|
160
|
+
const padding = 10; // Adjusted padding
|
|
161
|
+
|
|
162
|
+
// Calculate actual content dimensions
|
|
163
|
+
const contentWidth = Math.floor(candySize) * gridSize + totalGaps;
|
|
164
|
+
const contentHeight = Math.floor(candySize) * gridSize + totalGaps;
|
|
165
|
+
|
|
166
|
+
// Grid dimensions including padding and border
|
|
167
|
+
const gridWidth = contentWidth + padding * 2;
|
|
168
|
+
const gridHeight = contentHeight + padding * 2;
|
|
169
|
+
return {
|
|
170
|
+
candySize: Math.floor(candySize),
|
|
171
|
+
gap,
|
|
172
|
+
gridSize,
|
|
173
|
+
gridWidth,
|
|
174
|
+
gridHeight
|
|
175
|
+
};
|
|
176
|
+
}, []);
|
|
177
|
+
const {
|
|
178
|
+
candySize,
|
|
179
|
+
gap,
|
|
180
|
+
gridWidth,
|
|
181
|
+
gridHeight
|
|
182
|
+
} = gridCalculations;
|
|
183
|
+
|
|
184
|
+
// Generate jelly bubbles
|
|
185
|
+
const jellyBubbles = useMemo(() => {
|
|
186
|
+
const bubbles = [];
|
|
187
|
+
const bubbleCount = 25;
|
|
188
|
+
for (let i = 0; i < bubbleCount; i++) {
|
|
189
|
+
bubbles.push({
|
|
190
|
+
x: Math.random() * gridWidth,
|
|
191
|
+
y: Math.random() * gridHeight,
|
|
192
|
+
radius: Math.random() * 15 + 5,
|
|
193
|
+
opacity: Math.random() * 0.15 + 0.05
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
return bubbles;
|
|
197
|
+
}, [gridWidth, gridHeight]);
|
|
198
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
199
|
+
style: styles.container,
|
|
200
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
201
|
+
style: [styles.jellyContainer, {
|
|
202
|
+
width: gridWidth,
|
|
203
|
+
height: gridHeight
|
|
204
|
+
}],
|
|
205
|
+
children: /*#__PURE__*/_jsxs(Canvas, {
|
|
206
|
+
style: {
|
|
207
|
+
width: gridWidth,
|
|
208
|
+
height: gridHeight
|
|
209
|
+
},
|
|
210
|
+
children: [/*#__PURE__*/_jsxs(RoundedRect, {
|
|
211
|
+
x: 0,
|
|
212
|
+
y: 0,
|
|
213
|
+
width: gridWidth,
|
|
214
|
+
height: gridHeight,
|
|
215
|
+
r: 15,
|
|
216
|
+
children: [/*#__PURE__*/_jsx(LinearGradient, {
|
|
217
|
+
start: vec(0, 0),
|
|
218
|
+
end: vec(gridWidth, gridHeight),
|
|
219
|
+
colors: ['rgba(255, 149, 0, 0.35)', 'rgba(255, 120, 0, 0.25)', 'rgba(255, 149, 0, 0.3)']
|
|
220
|
+
}), /*#__PURE__*/_jsx(Shadow, {
|
|
221
|
+
dx: 0,
|
|
222
|
+
dy: 6,
|
|
223
|
+
blur: 12,
|
|
224
|
+
color: "rgba(255, 100, 0, 0.4)",
|
|
225
|
+
inner: true
|
|
226
|
+
})]
|
|
227
|
+
}), /*#__PURE__*/_jsx(Group, {
|
|
228
|
+
children: jellyBubbles.map((bubble, index) => /*#__PURE__*/_jsx(Circle, {
|
|
229
|
+
cx: bubble.x,
|
|
230
|
+
cy: bubble.y,
|
|
231
|
+
r: bubble.radius,
|
|
232
|
+
color: `rgba(255, 255, 255, ${bubble.opacity})`
|
|
233
|
+
}, index))
|
|
234
|
+
}), /*#__PURE__*/_jsx(RoundedRect, {
|
|
235
|
+
x: 5,
|
|
236
|
+
y: 5,
|
|
237
|
+
width: gridWidth - 10,
|
|
238
|
+
height: gridHeight - 10,
|
|
239
|
+
r: 12,
|
|
240
|
+
children: /*#__PURE__*/_jsx(LinearGradient, {
|
|
241
|
+
start: vec(0, 0),
|
|
242
|
+
end: vec(0, gridHeight),
|
|
243
|
+
colors: ['rgba(255, 200, 100, 0.3)', 'rgba(255, 149, 0, 0)', 'rgba(255, 180, 80, 0.2)']
|
|
244
|
+
})
|
|
245
|
+
}), /*#__PURE__*/_jsx(RoundedRect, {
|
|
246
|
+
x: 15,
|
|
247
|
+
y: 15,
|
|
248
|
+
width: gridWidth - 30,
|
|
249
|
+
height: gridHeight * 0.25,
|
|
250
|
+
r: 8,
|
|
251
|
+
children: /*#__PURE__*/_jsx(LinearGradient, {
|
|
252
|
+
start: vec(0, 0),
|
|
253
|
+
end: vec(0, gridHeight * 0.25),
|
|
254
|
+
colors: ['rgba(255, 255, 255, 0.5)', 'rgba(255, 255, 255, 0)']
|
|
255
|
+
})
|
|
256
|
+
}), /*#__PURE__*/_jsx(RoundedRect, {
|
|
257
|
+
x: 15,
|
|
258
|
+
y: gridHeight * 0.75,
|
|
259
|
+
width: gridWidth - 30,
|
|
260
|
+
height: gridHeight * 0.2,
|
|
261
|
+
r: 8,
|
|
262
|
+
children: /*#__PURE__*/_jsx(LinearGradient, {
|
|
263
|
+
start: vec(0, 0),
|
|
264
|
+
end: vec(0, gridHeight * 0.2),
|
|
265
|
+
colors: ['rgba(0, 0, 0, 0)', 'rgba(255, 100, 0, 0.2)']
|
|
266
|
+
})
|
|
267
|
+
})]
|
|
268
|
+
})
|
|
269
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
270
|
+
style: [styles.grid, {
|
|
271
|
+
gap
|
|
272
|
+
}],
|
|
273
|
+
children: grid.map((row, rowIndex) => /*#__PURE__*/_jsx(GridRow, {
|
|
274
|
+
row: row,
|
|
275
|
+
rowIndex: rowIndex,
|
|
276
|
+
candySize: candySize,
|
|
277
|
+
gap: gap,
|
|
278
|
+
selectedCandyId: selectedCandyId,
|
|
279
|
+
matchedCandyIds: matchedCandyIds,
|
|
280
|
+
fallingCandyIds: fallingCandyIds,
|
|
281
|
+
onSwipe: handleSwipe
|
|
282
|
+
}, rowIndex))
|
|
283
|
+
})]
|
|
284
|
+
});
|
|
285
|
+
});
|
|
286
|
+
GameGrid.displayName = 'GameGrid';
|
|
287
|
+
const styles = StyleSheet.create({
|
|
288
|
+
container: {
|
|
289
|
+
flex: 1,
|
|
290
|
+
justifyContent: 'center',
|
|
291
|
+
alignItems: 'center',
|
|
292
|
+
position: 'relative'
|
|
293
|
+
},
|
|
294
|
+
jellyContainer: {
|
|
295
|
+
position: 'absolute',
|
|
296
|
+
borderRadius: 15,
|
|
297
|
+
borderWidth: 3,
|
|
298
|
+
borderColor: CANDY_CRUSH_COLORS.GRID_BORDER,
|
|
299
|
+
overflow: 'hidden'
|
|
300
|
+
},
|
|
301
|
+
grid: {
|
|
302
|
+
padding: 13,
|
|
303
|
+
// 10px padding + 3px border
|
|
304
|
+
zIndex: 1
|
|
305
|
+
},
|
|
306
|
+
row: {
|
|
307
|
+
flexDirection: 'row'
|
|
308
|
+
},
|
|
309
|
+
cell: {
|
|
310
|
+
justifyContent: 'center',
|
|
311
|
+
alignItems: 'center'
|
|
312
|
+
}
|
|
313
|
+
});
|
|
314
|
+
//# sourceMappingURL=GameGrid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useMemo","useRef","useEffect","View","StyleSheet","Dimensions","Canvas","RoundedRect","LinearGradient","vec","Shadow","Circle","Group","useGrid","useSelectedCandy","useCandyCrushStore","useMatchedCandyIds","useFallingCandyIds","CandyItem","CANDY_CRUSH_GAME_CONFIG","CANDY_CRUSH_COLORS","jsx","_jsx","jsxs","_jsxs","width","screenWidth","get","GridRow","memo","row","rowIndex","candySize","gap","selectedCandyId","matchedCandyIds","fallingCandyIds","onSwipe","style","styles","children","map","candy","colIndex","cell","height","isSelected","id","isMatched","has","isFalling","handleSwipe","direction","size","prevProps","nextProps","length","hadSelectedCandy","some","c","hasSelectedCandy","i","wasMatched","wasFalling","prevCandy","nextCandy","type","col","GameGrid","grid","selectedCandy","selectCandy","state","gridRef","current","useCallback","currentGrid","targetRow","targetCol","targetRowData","targetCandy","setTimeout","gridCalculations","horizontalPadding","availableWidth","gridSize","GRID_SIZE","totalGaps","padding","contentWidth","Math","floor","contentHeight","gridWidth","gridHeight","jellyBubbles","bubbles","bubbleCount","push","x","random","y","radius","opacity","container","jellyContainer","r","start","end","colors","dx","dy","blur","color","inner","bubble","index","cx","cy","displayName","create","flex","justifyContent","alignItems","position","borderRadius","borderWidth","borderColor","GRID_BORDER","overflow","zIndex","flexDirection"],"sourceRoot":"../../../../../src","sources":["games/candy-crush/components/GameGrid.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { View, Text, StyleSheet } from 'react-native';
|
|
5
|
+
import { useScore, useTimeRemaining } from "../CandyCrushStore.js";
|
|
6
|
+
import { CANDY_CRUSH_COLORS } from "../CandyCrushConstants.js";
|
|
7
|
+
import { ScoreBoardContainer } from "../../../helpers/index.js";
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
export const ScoreBoard = /*#__PURE__*/React.memo(({
|
|
10
|
+
offset = 0
|
|
11
|
+
}) => {
|
|
12
|
+
const score = useScore();
|
|
13
|
+
const timeRemaining = useTimeRemaining();
|
|
14
|
+
|
|
15
|
+
// Memoized time display calculation
|
|
16
|
+
const timeDisplay = React.useMemo(() => {
|
|
17
|
+
const minutes = Math.floor(timeRemaining / 60);
|
|
18
|
+
const seconds = timeRemaining % 60;
|
|
19
|
+
return `${minutes}:${seconds.toString().padStart(2, '0')}`;
|
|
20
|
+
}, [timeRemaining]);
|
|
21
|
+
|
|
22
|
+
// Memoized color based on time remaining
|
|
23
|
+
const timeColor = React.useMemo(() => {
|
|
24
|
+
if (timeRemaining <= 30) return CANDY_CRUSH_COLORS.TIME_CRITICAL;
|
|
25
|
+
if (timeRemaining <= 60) return CANDY_CRUSH_COLORS.TIME_WARNING;
|
|
26
|
+
return CANDY_CRUSH_COLORS.TIME_GOOD;
|
|
27
|
+
}, [timeRemaining]);
|
|
28
|
+
return /*#__PURE__*/_jsx(ScoreBoardContainer, {
|
|
29
|
+
offset: offset,
|
|
30
|
+
backgroundColor: CANDY_CRUSH_COLORS.SCORE_BACKGROUND,
|
|
31
|
+
borderColor: CANDY_CRUSH_COLORS.GRID_BORDER,
|
|
32
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
33
|
+
style: styles.scoreRow,
|
|
34
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
35
|
+
style: styles.scoreItem,
|
|
36
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
37
|
+
style: styles.label,
|
|
38
|
+
children: "Score"
|
|
39
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
40
|
+
style: styles.value,
|
|
41
|
+
children: score
|
|
42
|
+
})]
|
|
43
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
44
|
+
style: styles.scoreItem,
|
|
45
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
46
|
+
style: styles.label,
|
|
47
|
+
children: "Time"
|
|
48
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
49
|
+
style: [styles.value, {
|
|
50
|
+
color: timeColor
|
|
51
|
+
}],
|
|
52
|
+
children: timeDisplay
|
|
53
|
+
})]
|
|
54
|
+
})]
|
|
55
|
+
})
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
ScoreBoard.displayName = 'ScoreBoard';
|
|
59
|
+
const styles = StyleSheet.create({
|
|
60
|
+
scoreRow: {
|
|
61
|
+
flex: 1,
|
|
62
|
+
flexDirection: 'row',
|
|
63
|
+
justifyContent: 'space-around'
|
|
64
|
+
},
|
|
65
|
+
scoreItem: {
|
|
66
|
+
alignItems: 'center'
|
|
67
|
+
},
|
|
68
|
+
label: {
|
|
69
|
+
fontSize: 18,
|
|
70
|
+
color: 'rgba(255, 255, 255, 0.7)',
|
|
71
|
+
marginBottom: 4
|
|
72
|
+
},
|
|
73
|
+
value: {
|
|
74
|
+
fontSize: 30,
|
|
75
|
+
color: CANDY_CRUSH_COLORS.SCORE_TEXT,
|
|
76
|
+
fontWeight: 'bold'
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
//# sourceMappingURL=ScoreBoard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","Text","StyleSheet","useScore","useTimeRemaining","CANDY_CRUSH_COLORS","ScoreBoardContainer","jsx","_jsx","jsxs","_jsxs","ScoreBoard","memo","offset","score","timeRemaining","timeDisplay","useMemo","minutes","Math","floor","seconds","toString","padStart","timeColor","TIME_CRITICAL","TIME_WARNING","TIME_GOOD","backgroundColor","SCORE_BACKGROUND","borderColor","GRID_BORDER","children","style","styles","scoreRow","scoreItem","label","value","color","displayName","create","flex","flexDirection","justifyContent","alignItems","fontSize","marginBottom","SCORE_TEXT","fontWeight"],"sourceRoot":"../../../../../src","sources":["games/candy-crush/components/ScoreBoard.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["GameBackground","GameGrid","ScoreBoard","CandyItem"],"sourceRoot":"../../../../../src","sources":["games/candy-crush/components/index.ts"],"mappings":";;AAAA,SAASA,cAAc,QAAQ,qBAAkB;AACjD,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,SAAS,QAAQ,gBAAa","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CandyCrush","useCandyCrushStore"],"sourceRoot":"../../../../src","sources":["games/candy-crush/index.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,iBAAc;AACzC,SAASC,kBAAkB,QAAQ,sBAAmB;AACtD,cAAc,0BAAuB","ignoreList":[]}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useEffect, useCallback, useMemo } from 'react';
|
|
4
|
+
import { View, StyleSheet } from 'react-native';
|
|
5
|
+
import { useColorsSortStore, useIsPlaying, useIsGameOver, useTime, useContainers, useSelectedContainerId } from "./ColorsSortStore.js";
|
|
6
|
+
import { ColorContainer, ScoreBoard, GameBackground } from "./components/index.js";
|
|
7
|
+
import { GameControlButton, GameOverModal } from "../../helpers/index.js";
|
|
8
|
+
import { GameSettingsModal } from "../../helpers/index.js";
|
|
9
|
+
import { COLORS_SORT_COLORS } from "./ColorsSortConstants.js";
|
|
10
|
+
import { GAME_IDS, DEFAULT_GAME_SETTINGS } from "../../services/UtilsService.js";
|
|
11
|
+
import { playSound, GAME_SOUNDS } from "../../services/SoundsService.js";
|
|
12
|
+
import { playHaptic, HapticType } from "../../services/HapticsService.js";
|
|
13
|
+
import { formatTime, getGridLayout } from "./ColorsSortService.js";
|
|
14
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
|
+
export const ColorsSort = /*#__PURE__*/React.memo(({
|
|
16
|
+
settings = DEFAULT_GAME_SETTINGS,
|
|
17
|
+
onSettingsChange
|
|
18
|
+
}) => {
|
|
19
|
+
const isPlaying = useIsPlaying();
|
|
20
|
+
const isGameOver = useIsGameOver();
|
|
21
|
+
const time = useTime();
|
|
22
|
+
const containers = useContainers();
|
|
23
|
+
const selectedContainerId = useSelectedContainerId();
|
|
24
|
+
const initializeGame = useColorsSortStore(state => state.initializeGame);
|
|
25
|
+
const startGame = useColorsSortStore(state => state.startGame);
|
|
26
|
+
const stopGame = useColorsSortStore(state => state.stopGame);
|
|
27
|
+
const resetGame = useColorsSortStore(state => state.resetGame);
|
|
28
|
+
const selectContainer = useColorsSortStore(state => state.selectContainer);
|
|
29
|
+
const difficulty = settings.difficulty;
|
|
30
|
+
const gridStyle = useMemo(() => getGridLayout(difficulty), [difficulty]);
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
initializeGame(difficulty);
|
|
33
|
+
}, [difficulty, initializeGame]);
|
|
34
|
+
const handleStartGame = useCallback(() => {
|
|
35
|
+
initializeGame(difficulty);
|
|
36
|
+
startGame();
|
|
37
|
+
playSound(GAME_SOUNDS.COLORS_SORT.START, settings.enableSounds);
|
|
38
|
+
playHaptic(HapticType.MEDIUM, settings.enableHaptics);
|
|
39
|
+
}, [difficulty, initializeGame, startGame, settings.enableSounds, settings.enableHaptics]);
|
|
40
|
+
const handleStopGame = useCallback(() => {
|
|
41
|
+
stopGame();
|
|
42
|
+
}, [stopGame]);
|
|
43
|
+
const handleResetGame = useCallback(() => {
|
|
44
|
+
resetGame();
|
|
45
|
+
initializeGame(difficulty);
|
|
46
|
+
}, [resetGame, initializeGame, difficulty]);
|
|
47
|
+
const handleContainerPress = useCallback(containerId => {
|
|
48
|
+
if (!isPlaying || isGameOver) return;
|
|
49
|
+
selectContainer(containerId, settings);
|
|
50
|
+
}, [isPlaying, isGameOver, selectContainer, settings]);
|
|
51
|
+
|
|
52
|
+
// Memoize GameControlButton props to prevent re-renders (CRITICAL)
|
|
53
|
+
const gameControlButtonProps = useMemo(() => ({
|
|
54
|
+
isPlaying,
|
|
55
|
+
gameOver: isGameOver,
|
|
56
|
+
onStartGame: handleStartGame,
|
|
57
|
+
onStopGame: handleStopGame,
|
|
58
|
+
startButtonText: "START SORTING",
|
|
59
|
+
stopButtonText: "STOP GAME",
|
|
60
|
+
startButtonSubtext: "Sort colors!",
|
|
61
|
+
startButtonColor: COLORS_SORT_COLORS.BUTTON_PRIMARY,
|
|
62
|
+
startButtonBorderColor: COLORS_SORT_COLORS.BUTTON_SECONDARY
|
|
63
|
+
}), [isPlaying, isGameOver, handleStartGame, handleStopGame]);
|
|
64
|
+
|
|
65
|
+
// Memoize GameOverModal props to prevent re-renders
|
|
66
|
+
const gameOverModalProps = useMemo(() => ({
|
|
67
|
+
isVisible: isGameOver,
|
|
68
|
+
score: time,
|
|
69
|
+
onPlayAgain: handleResetGame,
|
|
70
|
+
buttonText: "Sort Again!",
|
|
71
|
+
primaryColor: "rgba(255, 140, 66, 0.95)",
|
|
72
|
+
borderColor: COLORS_SORT_COLORS.BUTTON_PRIMARY,
|
|
73
|
+
buttonColor: COLORS_SORT_COLORS.BUTTON_PRIMARY,
|
|
74
|
+
buttonBorderColor: COLORS_SORT_COLORS.BUTTON_SECONDARY,
|
|
75
|
+
scoreLabel: "Completion Time",
|
|
76
|
+
scoreFormatter: formatTime
|
|
77
|
+
}), [isGameOver, time, handleResetGame]);
|
|
78
|
+
|
|
79
|
+
// Memoize GameSettingsModal props
|
|
80
|
+
const gameSettingsModalProps = useMemo(() => ({
|
|
81
|
+
gameId: GAME_IDS.COLORS_SORT,
|
|
82
|
+
settings,
|
|
83
|
+
onSettingsChange
|
|
84
|
+
}), [settings, onSettingsChange]);
|
|
85
|
+
|
|
86
|
+
// Get offset from settings
|
|
87
|
+
const offset = settings?.offset ?? 0;
|
|
88
|
+
|
|
89
|
+
// Memoized dynamic styles based on offset
|
|
90
|
+
const dynamicStyles = useMemo(() => ({
|
|
91
|
+
gameArea: {
|
|
92
|
+
...styles.gameArea,
|
|
93
|
+
paddingTop: 100 + offset
|
|
94
|
+
}
|
|
95
|
+
}), [offset]);
|
|
96
|
+
return /*#__PURE__*/_jsx(GameBackground, {
|
|
97
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
98
|
+
style: styles.container,
|
|
99
|
+
children: [/*#__PURE__*/_jsx(ScoreBoard, {
|
|
100
|
+
offset: offset
|
|
101
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
102
|
+
style: dynamicStyles.gameArea,
|
|
103
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
104
|
+
style: [styles.containersGrid, gridStyle],
|
|
105
|
+
children: containers.map(container => /*#__PURE__*/_jsx(ColorContainer, {
|
|
106
|
+
container: container,
|
|
107
|
+
isSelected: selectedContainerId === container.id,
|
|
108
|
+
onPress: () => handleContainerPress(container.id),
|
|
109
|
+
difficulty: difficulty
|
|
110
|
+
}, container.id))
|
|
111
|
+
})
|
|
112
|
+
}), /*#__PURE__*/_jsx(GameControlButton, {
|
|
113
|
+
...gameControlButtonProps
|
|
114
|
+
}), /*#__PURE__*/_jsx(GameOverModal, {
|
|
115
|
+
...gameOverModalProps
|
|
116
|
+
}), /*#__PURE__*/_jsx(GameSettingsModal, {
|
|
117
|
+
...gameSettingsModalProps
|
|
118
|
+
})]
|
|
119
|
+
})
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
const styles = StyleSheet.create({
|
|
123
|
+
container: {
|
|
124
|
+
flex: 1
|
|
125
|
+
},
|
|
126
|
+
gameArea: {
|
|
127
|
+
flex: 1,
|
|
128
|
+
justifyContent: 'center',
|
|
129
|
+
alignItems: 'center',
|
|
130
|
+
paddingTop: 100,
|
|
131
|
+
paddingBottom: 120
|
|
132
|
+
},
|
|
133
|
+
containersGrid: {
|
|
134
|
+
flexDirection: 'row',
|
|
135
|
+
flexWrap: 'wrap',
|
|
136
|
+
justifyContent: 'center',
|
|
137
|
+
alignItems: 'flex-end',
|
|
138
|
+
gap: 15,
|
|
139
|
+
paddingHorizontal: 10
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
ColorsSort.displayName = 'ColorsSort';
|
|
143
|
+
//# sourceMappingURL=ColorsSort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useEffect","useCallback","useMemo","View","StyleSheet","useColorsSortStore","useIsPlaying","useIsGameOver","useTime","useContainers","useSelectedContainerId","ColorContainer","ScoreBoard","GameBackground","GameControlButton","GameOverModal","GameSettingsModal","COLORS_SORT_COLORS","GAME_IDS","DEFAULT_GAME_SETTINGS","playSound","GAME_SOUNDS","playHaptic","HapticType","formatTime","getGridLayout","jsx","_jsx","jsxs","_jsxs","ColorsSort","memo","settings","onSettingsChange","isPlaying","isGameOver","time","containers","selectedContainerId","initializeGame","state","startGame","stopGame","resetGame","selectContainer","difficulty","gridStyle","handleStartGame","COLORS_SORT","START","enableSounds","MEDIUM","enableHaptics","handleStopGame","handleResetGame","handleContainerPress","containerId","gameControlButtonProps","gameOver","onStartGame","onStopGame","startButtonText","stopButtonText","startButtonSubtext","startButtonColor","BUTTON_PRIMARY","startButtonBorderColor","BUTTON_SECONDARY","gameOverModalProps","isVisible","score","onPlayAgain","buttonText","primaryColor","borderColor","buttonColor","buttonBorderColor","scoreLabel","scoreFormatter","gameSettingsModalProps","gameId","offset","dynamicStyles","gameArea","styles","paddingTop","children","style","container","containersGrid","map","isSelected","id","onPress","create","flex","justifyContent","alignItems","paddingBottom","flexDirection","flexWrap","gap","paddingHorizontal","displayName"],"sourceRoot":"../../../../src","sources":["games/colors-sort/ColorsSort.tsx"],"mappings":"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","ignoreList":[]}
|