react-native-games 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +101 -30
- package/lib/module/games/balloon-blaster/BalloonBlaster.js +1 -167
- package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
- package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +1 -182
- package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js.map +1 -1
- package/lib/module/games/balloon-blaster/BalloonBlasterService.js +1 -318
- package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +1 -183
- package/lib/module/games/balloon-blaster/components/BalloonComponent.js +1 -237
- package/lib/module/games/balloon-blaster/components/GameArea.js +1 -156
- package/lib/module/games/balloon-blaster/components/GameBackground.js +1 -476
- package/lib/module/games/balloon-blaster/components/ScoreBoard.js +1 -112
- package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/balloon-blaster/components/index.js +1 -7
- package/lib/module/games/bike-racing/BikeRacing.js +1 -0
- package/lib/module/games/bike-racing/BikeRacing.js.map +1 -0
- package/lib/module/games/bike-racing/BikeRacingConstants.js +1 -0
- package/lib/module/games/bike-racing/BikeRacingConstants.js.map +1 -0
- package/lib/module/games/bike-racing/BikeRacingService.js +1 -0
- package/lib/module/games/bike-racing/BikeRacingService.js.map +1 -0
- package/lib/module/games/bike-racing/BikeRacingStore.js +1 -0
- package/lib/module/games/bike-racing/BikeRacingStore.js.map +1 -0
- package/lib/module/games/bike-racing/components/BikeComponent.js +1 -0
- package/lib/module/games/bike-racing/components/BikeComponent.js.map +1 -0
- package/lib/module/games/bike-racing/components/GameBackground.js +1 -0
- package/lib/module/games/bike-racing/components/GameBackground.js.map +1 -0
- package/lib/module/games/bike-racing/components/ScoreBoard.js +1 -0
- package/lib/module/games/bike-racing/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/bike-racing/components/index.js +1 -0
- package/lib/module/games/bike-racing/components/index.js.map +1 -0
- package/lib/module/games/bike-racing/index.js +1 -0
- package/lib/module/games/bike-racing/index.js.map +1 -0
- package/lib/module/games/block-blast/BlockBlast.js +1 -0
- package/lib/module/games/block-blast/BlockBlast.js.map +1 -0
- package/lib/module/games/block-blast/BlockBlastConstants.js +1 -0
- package/lib/module/games/block-blast/BlockBlastConstants.js.map +1 -0
- package/lib/module/games/block-blast/BlockBlastService.js +1 -0
- package/lib/module/games/block-blast/BlockBlastService.js.map +1 -0
- package/lib/module/games/block-blast/BlockBlastStore.js +1 -0
- package/lib/module/games/block-blast/BlockBlastStore.js.map +1 -0
- package/lib/module/games/block-blast/components/BlockPieceComponent.js +1 -0
- package/lib/module/games/block-blast/components/BlockPieceComponent.js.map +1 -0
- package/lib/module/games/block-blast/components/GameArea.js +1 -0
- package/lib/module/games/block-blast/components/GameArea.js.map +1 -0
- package/lib/module/games/block-blast/components/GameBackground.js +1 -0
- package/lib/module/games/block-blast/components/GameBackground.js.map +1 -0
- package/lib/module/games/block-blast/components/GridComponent.js +1 -0
- package/lib/module/games/block-blast/components/GridComponent.js.map +1 -0
- package/lib/module/games/block-blast/components/ScoreBoard.js +1 -0
- package/lib/module/games/block-blast/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/block-blast/components/index.js +1 -0
- package/lib/module/games/block-blast/components/index.js.map +1 -0
- package/lib/module/games/block-blast/index.js +1 -0
- package/lib/module/games/block-blast/index.js.map +1 -0
- package/lib/module/games/bubble-shooter/BubbleShooter.js +1 -0
- package/lib/module/games/bubble-shooter/BubbleShooter.js.map +1 -0
- package/lib/module/games/bubble-shooter/BubbleShooterConstants.js +1 -0
- package/lib/module/games/bubble-shooter/BubbleShooterConstants.js.map +1 -0
- package/lib/module/games/bubble-shooter/BubbleShooterService.js +1 -0
- package/lib/module/games/bubble-shooter/BubbleShooterService.js.map +1 -0
- package/lib/module/games/bubble-shooter/BubbleShooterStore.js +1 -0
- package/lib/module/games/bubble-shooter/BubbleShooterStore.js.map +1 -0
- package/lib/module/games/bubble-shooter/components/GameArea.js +1 -0
- package/lib/module/games/bubble-shooter/components/GameArea.js.map +1 -0
- package/lib/module/games/bubble-shooter/components/GameBackground.js +1 -0
- package/lib/module/games/bubble-shooter/components/GameBackground.js.map +1 -0
- package/lib/module/games/bubble-shooter/components/ScoreBoard.js +1 -0
- package/lib/module/games/bubble-shooter/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/bubble-shooter/components/index.js +1 -0
- package/lib/module/games/bubble-shooter/components/index.js.map +1 -0
- package/lib/module/games/bubble-shooter/index.js +1 -0
- package/lib/module/games/bubble-shooter/index.js.map +1 -0
- package/lib/module/games/candy-crush/CandyCrush.js +1 -131
- package/lib/module/games/candy-crush/CandyCrush.js.map +1 -1
- package/lib/module/games/candy-crush/CandyCrushConstants.js +1 -125
- package/lib/module/games/candy-crush/CandyCrushConstants.js.map +1 -1
- package/lib/module/games/candy-crush/CandyCrushService.js +1 -370
- package/lib/module/games/candy-crush/CandyCrushStore.js +1 -303
- package/lib/module/games/candy-crush/components/CandyItem.js +1 -191
- package/lib/module/games/candy-crush/components/GameBackground.js +1 -85
- package/lib/module/games/candy-crush/components/GameGrid.js +1 -314
- package/lib/module/games/candy-crush/components/ScoreBoard.js +1 -79
- package/lib/module/games/candy-crush/components/index.js +1 -7
- package/lib/module/games/candy-crush/index.js +1 -6
- package/lib/module/games/car-racing/CarRacing.js +1 -0
- package/lib/module/games/car-racing/CarRacing.js.map +1 -0
- package/lib/module/games/car-racing/CarRacingConstants.js +1 -0
- package/lib/module/games/car-racing/CarRacingConstants.js.map +1 -0
- package/lib/module/games/car-racing/CarRacingService.js +1 -0
- package/lib/module/games/car-racing/CarRacingService.js.map +1 -0
- package/lib/module/games/car-racing/CarRacingStore.js +1 -0
- package/lib/module/games/car-racing/CarRacingStore.js.map +1 -0
- package/lib/module/games/car-racing/components/CarComponent.js +1 -0
- package/lib/module/games/car-racing/components/CarComponent.js.map +1 -0
- package/lib/module/games/car-racing/components/GameBackground.js +1 -0
- package/lib/module/games/car-racing/components/GameBackground.js.map +1 -0
- package/lib/module/games/car-racing/components/ScoreBoard.js +1 -0
- package/lib/module/games/car-racing/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/car-racing/components/index.js +1 -0
- package/lib/module/games/car-racing/components/index.js.map +1 -0
- package/lib/module/games/colors-sort/ColorsSort.js +1 -143
- package/lib/module/games/colors-sort/ColorsSort.js.map +1 -1
- package/lib/module/games/colors-sort/ColorsSortConstants.js +1 -72
- package/lib/module/games/colors-sort/ColorsSortConstants.js.map +1 -1
- package/lib/module/games/colors-sort/ColorsSortService.js +1 -255
- package/lib/module/games/colors-sort/ColorsSortStore.js +1 -257
- package/lib/module/games/colors-sort/ColorsSortStore.js.map +1 -1
- package/lib/module/games/colors-sort/components/ColorContainer.js +1 -140
- package/lib/module/games/colors-sort/components/GameBackground.js +1 -135
- package/lib/module/games/colors-sort/components/ScoreBoard.js +1 -70
- package/lib/module/games/colors-sort/components/index.js +1 -6
- package/lib/module/games/dino-jump/DinoJump.js +1 -209
- package/lib/module/games/dino-jump/DinoJump.js.map +1 -1
- package/lib/module/games/dino-jump/DinoJumpConstants.js +1 -189
- package/lib/module/games/dino-jump/DinoJumpConstants.js.map +1 -1
- package/lib/module/games/dino-jump/DinoJumpService.js +1 -270
- package/lib/module/games/dino-jump/DinoJumpStore.js +1 -381
- package/lib/module/games/dino-jump/components/DinoSprite.js +1 -418
- package/lib/module/games/dino-jump/components/DinoSprite.js.map +1 -1
- package/lib/module/games/dino-jump/components/GameArea.js +1 -68
- package/lib/module/games/dino-jump/components/GameBackground.js +1 -444
- package/lib/module/games/dino-jump/components/ObstacleSprite.js +1 -306
- package/lib/module/games/dino-jump/components/ScoreBoard.js +1 -105
- package/lib/module/games/dino-jump/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/dino-jump/components/StarSprite.js +1 -45
- package/lib/module/games/dino-jump/components/index.js +1 -9
- package/lib/module/games/flappy-bird/FlappyBird.js +1 -126
- package/lib/module/games/flappy-bird/FlappyBird.js.map +1 -1
- package/lib/module/games/flappy-bird/FlappyBirdConstants.js +1 -90
- package/lib/module/games/flappy-bird/FlappyBirdConstants.js.map +1 -1
- package/lib/module/games/flappy-bird/FlappyBirdStore.js +1 -300
- package/lib/module/games/flappy-bird/components/Bird.js +1 -87
- package/lib/module/games/flappy-bird/components/GameArea.js +1 -87
- package/lib/module/games/flappy-bird/components/GameBackground.js +1 -79
- package/lib/module/games/flappy-bird/components/Pipes.js +1 -172
- package/lib/module/games/flappy-bird/components/ScoreBoard.js +1 -73
- package/lib/module/games/flappy-bird/components/index.js +1 -8
- package/lib/module/games/fruit-merger/FruitMerger.js +1 -120
- package/lib/module/games/fruit-merger/FruitMerger.js.map +1 -1
- package/lib/module/games/fruit-merger/FruitMergerConstants.js +1 -119
- package/lib/module/games/fruit-merger/FruitMergerConstants.js.map +1 -1
- package/lib/module/games/fruit-merger/FruitMergerService.js +1 -13
- package/lib/module/games/fruit-merger/FruitMergerStore.js +1 -315
- package/lib/module/games/fruit-merger/components/FruitItem.js +1 -102
- package/lib/module/games/fruit-merger/components/GameArea.js +1 -103
- package/lib/module/games/fruit-merger/components/GameBackground.js +1 -498
- package/lib/module/games/fruit-merger/components/ScoreBoard.js +1 -58
- package/lib/module/games/fruit-merger/components/index.js +1 -7
- package/lib/module/games/fruit-ninja/FruitNinja.js +1 -134
- package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -1
- package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +1 -148
- package/lib/module/games/fruit-ninja/FruitNinjaConstants.js.map +1 -1
- package/lib/module/games/fruit-ninja/FruitNinjaService.js +1 -311
- package/lib/module/games/fruit-ninja/FruitNinjaStore.js +1 -191
- package/lib/module/games/fruit-ninja/FruitNinjaStore.js.map +1 -1
- package/lib/module/games/fruit-ninja/components/FruitComponent.js +1 -99
- package/lib/module/games/fruit-ninja/components/GameArea.js +1 -215
- package/lib/module/games/fruit-ninja/components/GameBackground.js +1 -1267
- package/lib/module/games/fruit-ninja/components/ScoreBoard.js +1 -92
- package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/fruit-ninja/components/index.js +1 -7
- package/lib/module/games/game-2048/Game2048.js +1 -149
- package/lib/module/games/game-2048/Game2048.js.map +1 -1
- package/lib/module/games/game-2048/Game2048Constants.js +1 -263
- package/lib/module/games/game-2048/Game2048Constants.js.map +1 -1
- package/lib/module/games/game-2048/Game2048Service.js +1 -457
- package/lib/module/games/game-2048/Game2048Store.js +1 -236
- package/lib/module/games/game-2048/components/GameBackground.js +1 -247
- package/lib/module/games/game-2048/components/GameGrid.js +1 -139
- package/lib/module/games/game-2048/components/GameTile.js +1 -72
- package/lib/module/games/game-2048/components/ScoreBoard.js +1 -52
- package/lib/module/games/game-2048/components/index.js +1 -7
- package/lib/module/games/maze-runner/MazeRunner.js +1 -267
- package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
- package/lib/module/games/maze-runner/MazeRunnerConstants.js +1 -100
- package/lib/module/games/maze-runner/MazeRunnerConstants.js.map +1 -1
- package/lib/module/games/maze-runner/MazeRunnerService.js +1 -586
- package/lib/module/games/maze-runner/components/EnhancedBallComponent.js +1 -150
- package/lib/module/games/maze-runner/components/EnhancedGameArea.js +1 -370
- package/lib/module/games/maze-runner/components/GameBackground.js +1 -175
- package/lib/module/games/maze-runner/components/ScoreBoard.js +1 -61
- package/lib/module/games/maze-runner/components/SkiaPipeComponent.js +1 -209
- package/lib/module/games/maze-runner/components/StaticGameBackground.js +1 -169
- package/lib/module/games/maze-runner/components/WallComponent.js +1 -91
- package/lib/module/games/maze-runner/components/index.js +1 -8
- package/lib/module/games/perfect-circle/PerfectCircle.js +1 -0
- package/lib/module/games/perfect-circle/PerfectCircle.js.map +1 -0
- package/lib/module/games/perfect-circle/PerfectCircleConstants.js +1 -0
- package/lib/module/games/perfect-circle/PerfectCircleConstants.js.map +1 -0
- package/lib/module/games/perfect-circle/PerfectCircleService.js +1 -0
- package/lib/module/games/perfect-circle/PerfectCircleService.js.map +1 -0
- package/lib/module/games/perfect-circle/PerfectCircleStore.js +1 -0
- package/lib/module/games/perfect-circle/PerfectCircleStore.js.map +1 -0
- package/lib/module/games/perfect-circle/components/DrawingCanvas.js +1 -0
- package/lib/module/games/perfect-circle/components/DrawingCanvas.js.map +1 -0
- package/lib/module/games/perfect-circle/components/GameBackground.js +1 -0
- package/lib/module/games/perfect-circle/components/GameBackground.js.map +1 -0
- package/lib/module/games/perfect-circle/components/ScoreBoard.js +1 -0
- package/lib/module/games/perfect-circle/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/perfect-circle/index.js +1 -0
- package/lib/module/games/perfect-circle/index.js.map +1 -0
- package/lib/module/games/popit-fidget/PopitFidget.js +1 -285
- package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -1
- package/lib/module/games/popit-fidget/PopitFidgetConstants.js +1 -113
- package/lib/module/games/popit-fidget/PopitFidgetConstants.js.map +1 -1
- package/lib/module/games/popit-fidget/PopitFidgetService.js +1 -132
- package/lib/module/games/popit-fidget/PopitFidgetStore.js +1 -125
- package/lib/module/games/popit-fidget/components/BubbleComponent.js +1 -198
- package/lib/module/games/popit-fidget/components/FidgetGrid.js +1 -165
- package/lib/module/games/popit-fidget/components/GameBackground.js +1 -177
- package/lib/module/games/popit-fidget/components/ScoreBoard.js +1 -61
- package/lib/module/games/popit-fidget/components/index.js +1 -7
- package/lib/module/games/sliding-numbers/SlidingNumbers.js +1 -159
- package/lib/module/games/sliding-numbers/SlidingNumbers.js.map +1 -1
- package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js +1 -207
- package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js.map +1 -1
- package/lib/module/games/sliding-numbers/SlidingNumbersService.js +1 -248
- package/lib/module/games/sliding-numbers/SlidingNumbersStore.js +1 -274
- package/lib/module/games/sliding-numbers/components/GameBackground.js +1 -259
- package/lib/module/games/sliding-numbers/components/NumbersGrid.js +1 -174
- package/lib/module/games/sliding-numbers/components/NumbersTile.js +1 -116
- package/lib/module/games/sliding-numbers/components/ScoreBoard.js +1 -64
- package/lib/module/games/sliding-numbers/components/index.js +1 -7
- package/lib/module/games/snake/Snake.js +1 -189
- package/lib/module/games/snake/Snake.js.map +1 -1
- package/lib/module/games/snake/SnakeConstants.js +1 -138
- package/lib/module/games/snake/SnakeConstants.js.map +1 -1
- package/lib/module/games/snake/SnakeService.js +1 -148
- package/lib/module/games/snake/SnakeStore.js +1 -182
- package/lib/module/games/snake/SnakeStore.js.map +1 -1
- package/lib/module/games/snake/components/GameBackground.js +1 -221
- package/lib/module/games/snake/components/GameGrid.js +1 -153
- package/lib/module/games/snake/components/ScoreBoard.js +1 -51
- package/lib/module/games/snake/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/snake/components/index.js +1 -6
- package/lib/module/games/snake/index.js +1 -6
- package/lib/module/games/space-fighter/SpaceFighter.js +1 -165
- package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -1
- package/lib/module/games/space-fighter/SpaceFighterConstants.js +1 -108
- package/lib/module/games/space-fighter/SpaceFighterConstants.js.map +1 -1
- package/lib/module/games/space-fighter/SpaceFighterService.js +1 -326
- package/lib/module/games/space-fighter/SpaceFighterStore.js +1 -209
- package/lib/module/games/space-fighter/components/AsteroidComponent.js +1 -113
- package/lib/module/games/space-fighter/components/GameArea.js +1 -289
- package/lib/module/games/space-fighter/components/GameBackground.js +1 -239
- package/lib/module/games/space-fighter/components/ScoreBoard.js +1 -136
- package/lib/module/games/space-fighter/components/Spacecraft3D.js +1 -202
- package/lib/module/games/space-fighter/components/SpacecraftPath.js +1 -52
- package/lib/module/games/space-fighter/components/index.js +1 -9
- package/lib/module/games/whack-a-mole/WhackAMole.js +1 -270
- package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -1
- package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +1 -115
- package/lib/module/games/whack-a-mole/WhackAMoleConstants.js.map +1 -1
- package/lib/module/games/whack-a-mole/WhackAMoleService.js +1 -120
- package/lib/module/games/whack-a-mole/WhackAMoleStore.js +1 -172
- package/lib/module/games/whack-a-mole/components/GameBackground.js +1 -477
- package/lib/module/games/whack-a-mole/components/GameGrid.js +1 -97
- package/lib/module/games/whack-a-mole/components/GameHole.js +1 -196
- package/lib/module/games/whack-a-mole/components/MoleCharacter.js +1 -241
- package/lib/module/games/whack-a-mole/components/ScoreBoard.js +1 -67
- package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/whack-a-mole/components/index.js +1 -8
- package/lib/module/helpers/AnimationFrame.js +1 -120
- package/lib/module/helpers/AnimationTracker.js +1 -89
- package/lib/module/helpers/ErrorHandler.js +1 -269
- package/lib/module/helpers/GameControlButton.js +1 -219
- package/lib/module/helpers/GameOverModal.js +1 -144
- package/lib/module/helpers/GameOverModal.js.map +1 -1
- package/lib/module/helpers/GameSettingsModal.js +1 -287
- package/lib/module/helpers/GameSettingsModal.js.map +1 -1
- package/lib/module/helpers/ParticleBlast.js +1 -134
- package/lib/module/helpers/ScoreBoardContainer.js +1 -34
- package/lib/module/helpers/ScoreBoardContainer.js.map +1 -1
- package/lib/module/helpers/index.js +1 -12
- package/lib/module/index.js +1 -22
- package/lib/module/index.js.map +1 -1
- package/lib/module/services/GamesConstants.js +1 -178
- package/lib/module/services/GamesConstants.js.map +1 -1
- package/lib/module/services/GamesService.js +1 -112
- package/lib/module/services/GamesService.js.map +1 -1
- package/lib/module/services/HapticsService.js +1 -77
- package/lib/module/services/ScoringService.js +1 -0
- package/lib/module/services/ScoringService.js.map +1 -0
- package/lib/module/services/SoundsService.js +1 -302
- package/lib/module/services/SoundsService.js.map +1 -1
- package/lib/module/services/UtilsService.js +1 -32
- package/lib/module/services/UtilsService.js.map +1 -1
- package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
- package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts +1 -1
- package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/bike-racing/BikeRacing.d.ts +4 -0
- package/lib/typescript/src/games/bike-racing/BikeRacing.d.ts.map +1 -0
- package/lib/typescript/src/games/bike-racing/BikeRacingConstants.d.ts +76 -0
- package/lib/typescript/src/games/bike-racing/BikeRacingConstants.d.ts.map +1 -0
- package/lib/typescript/src/games/bike-racing/BikeRacingService.d.ts +22 -0
- package/lib/typescript/src/games/bike-racing/BikeRacingService.d.ts.map +1 -0
- package/lib/typescript/src/games/bike-racing/BikeRacingStore.d.ts +72 -0
- package/lib/typescript/src/games/bike-racing/BikeRacingStore.d.ts.map +1 -0
- package/lib/typescript/src/games/bike-racing/components/BikeComponent.d.ts +12 -0
- package/lib/typescript/src/games/bike-racing/components/BikeComponent.d.ts.map +1 -0
- package/lib/typescript/src/games/bike-racing/components/GameBackground.d.ts +9 -0
- package/lib/typescript/src/games/bike-racing/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/bike-racing/components/ScoreBoard.d.ts +7 -0
- package/lib/typescript/src/games/bike-racing/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/bike-racing/components/index.d.ts +4 -0
- package/lib/typescript/src/games/bike-racing/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/bike-racing/index.d.ts +5 -0
- package/lib/typescript/src/games/bike-racing/index.d.ts.map +1 -0
- package/lib/typescript/src/games/block-blast/BlockBlast.d.ts +4 -0
- package/lib/typescript/src/games/block-blast/BlockBlast.d.ts.map +1 -0
- package/lib/typescript/src/games/block-blast/BlockBlastConstants.d.ts +82 -0
- package/lib/typescript/src/games/block-blast/BlockBlastConstants.d.ts.map +1 -0
- package/lib/typescript/src/games/block-blast/BlockBlastService.d.ts +17 -0
- package/lib/typescript/src/games/block-blast/BlockBlastService.d.ts.map +1 -0
- package/lib/typescript/src/games/block-blast/BlockBlastStore.d.ts +62 -0
- package/lib/typescript/src/games/block-blast/BlockBlastStore.d.ts.map +1 -0
- package/lib/typescript/src/games/block-blast/components/BlockPieceComponent.d.ts +14 -0
- package/lib/typescript/src/games/block-blast/components/BlockPieceComponent.d.ts.map +1 -0
- package/lib/typescript/src/games/block-blast/components/GameArea.d.ts +12 -0
- package/lib/typescript/src/games/block-blast/components/GameArea.d.ts.map +1 -0
- package/lib/typescript/src/games/block-blast/components/GameBackground.d.ts +7 -0
- package/lib/typescript/src/games/block-blast/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/block-blast/components/GridComponent.d.ts +17 -0
- package/lib/typescript/src/games/block-blast/components/GridComponent.d.ts.map +1 -0
- package/lib/typescript/src/games/block-blast/components/ScoreBoard.d.ts +7 -0
- package/lib/typescript/src/games/block-blast/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/block-blast/components/index.d.ts +6 -0
- package/lib/typescript/src/games/block-blast/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/block-blast/index.d.ts +5 -0
- package/lib/typescript/src/games/block-blast/index.d.ts.map +1 -0
- package/lib/typescript/src/games/bubble-shooter/BubbleShooter.d.ts +4 -0
- package/lib/typescript/src/games/bubble-shooter/BubbleShooter.d.ts.map +1 -0
- package/lib/typescript/src/games/bubble-shooter/BubbleShooterConstants.d.ts +61 -0
- package/lib/typescript/src/games/bubble-shooter/BubbleShooterConstants.d.ts.map +1 -0
- package/lib/typescript/src/games/bubble-shooter/BubbleShooterService.d.ts +26 -0
- package/lib/typescript/src/games/bubble-shooter/BubbleShooterService.d.ts.map +1 -0
- package/lib/typescript/src/games/bubble-shooter/BubbleShooterStore.d.ts +62 -0
- package/lib/typescript/src/games/bubble-shooter/BubbleShooterStore.d.ts.map +1 -0
- package/lib/typescript/src/games/bubble-shooter/components/GameArea.d.ts +9 -0
- package/lib/typescript/src/games/bubble-shooter/components/GameArea.d.ts.map +1 -0
- package/lib/typescript/src/games/bubble-shooter/components/GameBackground.d.ts +8 -0
- package/lib/typescript/src/games/bubble-shooter/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/bubble-shooter/components/ScoreBoard.d.ts +7 -0
- package/lib/typescript/src/games/bubble-shooter/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/bubble-shooter/components/index.d.ts +4 -0
- package/lib/typescript/src/games/bubble-shooter/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/bubble-shooter/index.d.ts +3 -0
- package/lib/typescript/src/games/bubble-shooter/index.d.ts.map +1 -0
- package/lib/typescript/src/games/candy-crush/CandyCrush.d.ts.map +1 -1
- package/lib/typescript/src/games/candy-crush/CandyCrushConstants.d.ts +7 -7
- package/lib/typescript/src/games/car-racing/CarRacing.d.ts +4 -0
- package/lib/typescript/src/games/car-racing/CarRacing.d.ts.map +1 -0
- package/lib/typescript/src/games/car-racing/CarRacingConstants.d.ts +76 -0
- package/lib/typescript/src/games/car-racing/CarRacingConstants.d.ts.map +1 -0
- package/lib/typescript/src/games/car-racing/CarRacingService.d.ts +22 -0
- package/lib/typescript/src/games/car-racing/CarRacingService.d.ts.map +1 -0
- package/lib/typescript/src/games/car-racing/CarRacingStore.d.ts +72 -0
- package/lib/typescript/src/games/car-racing/CarRacingStore.d.ts.map +1 -0
- package/lib/typescript/src/games/car-racing/components/CarComponent.d.ts +13 -0
- package/lib/typescript/src/games/car-racing/components/CarComponent.d.ts.map +1 -0
- package/lib/typescript/src/games/car-racing/components/GameBackground.d.ts +9 -0
- package/lib/typescript/src/games/car-racing/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/car-racing/components/ScoreBoard.d.ts +7 -0
- package/lib/typescript/src/games/car-racing/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/car-racing/components/index.d.ts +4 -0
- package/lib/typescript/src/games/car-racing/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/colors-sort/ColorsSort.d.ts.map +1 -1
- package/lib/typescript/src/games/colors-sort/ColorsSortStore.d.ts.map +1 -1
- package/lib/typescript/src/games/dino-jump/DinoJump.d.ts.map +1 -1
- package/lib/typescript/src/games/dino-jump/components/DinoSprite.d.ts.map +1 -1
- package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts.map +1 -1
- package/lib/typescript/src/games/flappy-bird/FlappyBirdConstants.d.ts.map +1 -1
- package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts.map +1 -1
- package/lib/typescript/src/games/fruit-merger/FruitMergerConstants.d.ts.map +1 -1
- package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -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.map +1 -1
- package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
- package/lib/typescript/src/games/perfect-circle/PerfectCircle.d.ts +4 -0
- package/lib/typescript/src/games/perfect-circle/PerfectCircle.d.ts.map +1 -0
- package/lib/typescript/src/games/perfect-circle/PerfectCircleConstants.d.ts +81 -0
- package/lib/typescript/src/games/perfect-circle/PerfectCircleConstants.d.ts.map +1 -0
- package/lib/typescript/src/games/perfect-circle/PerfectCircleService.d.ts +14 -0
- package/lib/typescript/src/games/perfect-circle/PerfectCircleService.d.ts.map +1 -0
- package/lib/typescript/src/games/perfect-circle/PerfectCircleStore.d.ts +40 -0
- package/lib/typescript/src/games/perfect-circle/PerfectCircleStore.d.ts.map +1 -0
- package/lib/typescript/src/games/perfect-circle/components/DrawingCanvas.d.ts +9 -0
- package/lib/typescript/src/games/perfect-circle/components/DrawingCanvas.d.ts.map +1 -0
- package/lib/typescript/src/games/perfect-circle/components/GameBackground.d.ts +8 -0
- package/lib/typescript/src/games/perfect-circle/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/perfect-circle/components/ScoreBoard.d.ts +7 -0
- package/lib/typescript/src/games/perfect-circle/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/perfect-circle/index.d.ts +3 -0
- package/lib/typescript/src/games/perfect-circle/index.d.ts.map +1 -0
- package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -1
- package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts.map +1 -1
- package/lib/typescript/src/games/snake/Snake.d.ts.map +1 -1
- package/lib/typescript/src/games/snake/SnakeStore.d.ts +4 -0
- package/lib/typescript/src/games/snake/SnakeStore.d.ts.map +1 -1
- package/lib/typescript/src/games/snake/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -1
- package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -1
- package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts +1 -1
- package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/helpers/GameOverModal.d.ts +3 -0
- package/lib/typescript/src/helpers/GameOverModal.d.ts.map +1 -1
- package/lib/typescript/src/helpers/ScoreBoardContainer.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +6 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/services/GamesConstants.d.ts +57 -7
- package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -1
- package/lib/typescript/src/services/GamesService.d.ts +2 -1
- package/lib/typescript/src/services/GamesService.d.ts.map +1 -1
- package/lib/typescript/src/services/ScoringService.d.ts +2 -0
- package/lib/typescript/src/services/ScoringService.d.ts.map +1 -0
- package/lib/typescript/src/services/SoundsService.d.ts +88 -0
- package/lib/typescript/src/services/SoundsService.d.ts.map +1 -1
- package/lib/typescript/src/services/UtilsService.d.ts +12 -1
- package/lib/typescript/src/services/UtilsService.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1,165 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import React, { useMemo, useCallback } from 'react';
|
|
4
|
-
import { View, StyleSheet } from 'react-native';
|
|
5
|
-
import { RAINBOW_COLORS } from "../PopitFidgetConstants.js";
|
|
6
|
-
import BubbleComponent from "./BubbleComponent.js";
|
|
7
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
-
const FidgetGrid = ({
|
|
9
|
-
grid,
|
|
10
|
-
bubbleSize,
|
|
11
|
-
onBubblePop,
|
|
12
|
-
hapticEnabled = true,
|
|
13
|
-
isPlaying
|
|
14
|
-
}) => {
|
|
15
|
-
const padding = 20;
|
|
16
|
-
|
|
17
|
-
// Memoize row color calculation to prevent recalculation
|
|
18
|
-
const getRowColor = useCallback(rowIndex => {
|
|
19
|
-
const colorIndex = Math.floor(rowIndex / (grid.size - 1) * (RAINBOW_COLORS.length - 1));
|
|
20
|
-
return RAINBOW_COLORS[colorIndex] || RAINBOW_COLORS[0];
|
|
21
|
-
}, [grid.size]);
|
|
22
|
-
|
|
23
|
-
// Memoize container dimensions to prevent recalculation
|
|
24
|
-
const containerDimensions = useMemo(() => ({
|
|
25
|
-
width: grid.width + padding * 2,
|
|
26
|
-
height: grid.height + padding * 2
|
|
27
|
-
}), [grid.width, grid.height, padding]);
|
|
28
|
-
|
|
29
|
-
// Memoize bubble pop handlers using a stable reference pattern
|
|
30
|
-
const bubblePopHandlers = useMemo(() => {
|
|
31
|
-
const handlers = {};
|
|
32
|
-
grid.bubbles.forEach((row, rowIndex) => {
|
|
33
|
-
row.forEach((bubble, colIndex) => {
|
|
34
|
-
if (bubble) {
|
|
35
|
-
handlers[bubble.id] = () => onBubblePop(rowIndex, colIndex);
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
return handlers;
|
|
40
|
-
}, [grid.bubbles, onBubblePop]);
|
|
41
|
-
return /*#__PURE__*/_jsxs(View, {
|
|
42
|
-
style: [styles.container, containerDimensions],
|
|
43
|
-
children: [/*#__PURE__*/_jsxs(View, {
|
|
44
|
-
style: [styles.backgroundContainer, styles.fidget3D, {
|
|
45
|
-
...containerDimensions,
|
|
46
|
-
borderRadius: 20,
|
|
47
|
-
overflow: 'hidden'
|
|
48
|
-
}],
|
|
49
|
-
children: [/*#__PURE__*/_jsx(View, {
|
|
50
|
-
style: [styles.outerBorder, {
|
|
51
|
-
...containerDimensions,
|
|
52
|
-
borderRadius: 20
|
|
53
|
-
}]
|
|
54
|
-
}), /*#__PURE__*/_jsx(View, {
|
|
55
|
-
style: [styles.innerRecess, {
|
|
56
|
-
position: 'absolute',
|
|
57
|
-
left: 8,
|
|
58
|
-
top: 8,
|
|
59
|
-
width: containerDimensions.width - 16,
|
|
60
|
-
height: containerDimensions.height - 16,
|
|
61
|
-
borderRadius: 12,
|
|
62
|
-
overflow: 'hidden'
|
|
63
|
-
}],
|
|
64
|
-
children: grid.bubbles.map((_, rowIndex) => {
|
|
65
|
-
const rowHeight = grid.height / grid.size;
|
|
66
|
-
const rowColor = getRowColor(rowIndex);
|
|
67
|
-
return /*#__PURE__*/_jsx(View, {
|
|
68
|
-
style: {
|
|
69
|
-
position: 'absolute',
|
|
70
|
-
left: padding - 8,
|
|
71
|
-
top: padding - 8 + rowIndex * rowHeight,
|
|
72
|
-
width: grid.width,
|
|
73
|
-
height: rowHeight,
|
|
74
|
-
backgroundColor: `${rowColor}50`
|
|
75
|
-
}
|
|
76
|
-
}, `row-bg-${rowIndex}`);
|
|
77
|
-
})
|
|
78
|
-
})]
|
|
79
|
-
}), /*#__PURE__*/_jsx(View, {
|
|
80
|
-
style: {
|
|
81
|
-
position: 'absolute',
|
|
82
|
-
left: padding,
|
|
83
|
-
top: padding
|
|
84
|
-
},
|
|
85
|
-
children: grid.bubbles.map((row, _rowIndex) => row.map((bubble, _colIndex) => {
|
|
86
|
-
if (!bubble) return null;
|
|
87
|
-
const bubbleHandler = bubblePopHandlers[bubble.id];
|
|
88
|
-
if (!bubbleHandler) return null;
|
|
89
|
-
return /*#__PURE__*/_jsx(BubbleComponent, {
|
|
90
|
-
bubble: bubble,
|
|
91
|
-
size: bubbleSize,
|
|
92
|
-
onPop: bubbleHandler,
|
|
93
|
-
hapticEnabled: hapticEnabled,
|
|
94
|
-
isPlaying: isPlaying
|
|
95
|
-
}, bubble.id);
|
|
96
|
-
}))
|
|
97
|
-
})]
|
|
98
|
-
});
|
|
99
|
-
};
|
|
100
|
-
const styles = StyleSheet.create({
|
|
101
|
-
container: {
|
|
102
|
-
position: 'relative',
|
|
103
|
-
padding: 15
|
|
104
|
-
// Removed flex: 1 since we now use explicit width/height
|
|
105
|
-
// The parent gameArea container handles centering
|
|
106
|
-
},
|
|
107
|
-
backgroundContainer: {
|
|
108
|
-
position: 'absolute'
|
|
109
|
-
},
|
|
110
|
-
fidget3D: {
|
|
111
|
-
// Deep shadow for authentic Pop It depth
|
|
112
|
-
shadowColor: '#000',
|
|
113
|
-
shadowOffset: {
|
|
114
|
-
width: 0,
|
|
115
|
-
height: 8
|
|
116
|
-
},
|
|
117
|
-
shadowOpacity: 0.4,
|
|
118
|
-
shadowRadius: 12,
|
|
119
|
-
elevation: 12
|
|
120
|
-
},
|
|
121
|
-
outerBorder: {
|
|
122
|
-
position: 'absolute',
|
|
123
|
-
backgroundColor: '#f0f0f0',
|
|
124
|
-
// Raised border gradient effect using multiple borders
|
|
125
|
-
borderWidth: 2,
|
|
126
|
-
borderTopColor: '#ffffff',
|
|
127
|
-
borderLeftColor: '#ffffff',
|
|
128
|
-
borderRightColor: '#cccccc',
|
|
129
|
-
borderBottomColor: '#aaaaaa'
|
|
130
|
-
},
|
|
131
|
-
innerRecess: {
|
|
132
|
-
backgroundColor: '#e8e8e8',
|
|
133
|
-
// Recessed inner area with inverted lighting
|
|
134
|
-
borderWidth: 1,
|
|
135
|
-
borderTopColor: '#cccccc',
|
|
136
|
-
borderLeftColor: '#cccccc',
|
|
137
|
-
borderRightColor: '#ffffff',
|
|
138
|
-
borderBottomColor: '#ffffff',
|
|
139
|
-
// Inner shadow effect
|
|
140
|
-
shadowColor: '#000',
|
|
141
|
-
shadowOffset: {
|
|
142
|
-
width: 0,
|
|
143
|
-
height: -2
|
|
144
|
-
},
|
|
145
|
-
shadowOpacity: 0.2,
|
|
146
|
-
shadowRadius: 4,
|
|
147
|
-
elevation: -2
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
|
-
|
|
151
|
-
// Memoized FidgetGrid component to prevent unnecessary re-renders
|
|
152
|
-
const MemoizedFidgetGrid = /*#__PURE__*/React.memo(FidgetGrid, (prevProps, nextProps) => {
|
|
153
|
-
// Only re-render if grid structure, bubble states, or key props change
|
|
154
|
-
return prevProps.grid.size === nextProps.grid.size && prevProps.grid.width === nextProps.grid.width && prevProps.grid.height === nextProps.grid.height && prevProps.bubbleSize === nextProps.bubbleSize && prevProps.hapticEnabled === nextProps.hapticEnabled && prevProps.isPlaying === nextProps.isPlaying && prevProps.onBubblePop === nextProps.onBubblePop &&
|
|
155
|
-
// Check if bubble states have changed
|
|
156
|
-
JSON.stringify(prevProps.grid.bubbles.map(row => row.map(bubble => bubble ? {
|
|
157
|
-
id: bubble.id,
|
|
158
|
-
isPopped: bubble.isPopped
|
|
159
|
-
} : null))) === JSON.stringify(nextProps.grid.bubbles.map(row => row.map(bubble => bubble ? {
|
|
160
|
-
id: bubble.id,
|
|
161
|
-
isPopped: bubble.isPopped
|
|
162
|
-
} : null)));
|
|
163
|
-
});
|
|
164
|
-
export default MemoizedFidgetGrid;
|
|
165
|
-
//# sourceMappingURL=FidgetGrid.js.map
|
|
1
|
+
"use strict";import React,{useMemo,useCallback}from 'react';import{View,StyleSheet}from 'react-native';import{RAINBOW_COLORS}from "../PopitFidgetConstants.js";import BubbleComponent from "./BubbleComponent.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const FidgetGrid =({grid,bubbleSize,onBubblePop,hapticEnabled = true,isPlaying})=>{const padding = 20;const getRowColor = useCallback(rowIndex =>{const colorIndex = Math.floor(rowIndex /(grid.size - 1)*(RAINBOW_COLORS.length - 1));return RAINBOW_COLORS[colorIndex] || RAINBOW_COLORS[0];},[grid.size]);const containerDimensions = useMemo(()=>({width:grid.width + padding * 2,height:grid.height + padding * 2}),[grid.width,grid.height,padding]);const bubblePopHandlers = useMemo(()=>{const handlers ={};grid.bubbles.forEach((row,rowIndex)=>{row.forEach((bubble,colIndex)=>{if(bubble){handlers[bubble.id] =()=> onBubblePop(rowIndex,colIndex);}});});return handlers;},[grid.bubbles,onBubblePop]);return _jsxs(View,{style:[styles.container,containerDimensions],children:[_jsxs(View,{style:[styles.backgroundContainer,styles.fidget3D,{...containerDimensions,borderRadius:20,overflow:'hidden'}],children:[_jsx(View,{style:[styles.outerBorder,{...containerDimensions,borderRadius:20}]}),_jsx(View,{style:[styles.innerRecess,{position:'absolute',left:8,top:8,width:containerDimensions.width - 16,height:containerDimensions.height - 16,borderRadius:12,overflow:'hidden'}],children:grid.bubbles.map((_,rowIndex)=>{const rowHeight = grid.height / grid.size;const rowColor = getRowColor(rowIndex);return _jsx(View,{style:{position:'absolute',left:padding - 8,top:padding - 8 + rowIndex * rowHeight,width:grid.width,height:rowHeight,backgroundColor:`${rowColor}50`}},`row-bg-${rowIndex}`);})})]}),_jsx(View,{style:{position:'absolute',left:padding,top:padding},children:grid.bubbles.map((row,_rowIndex)=> row.map((bubble,_colIndex)=>{if(!bubble)return null;const bubbleHandler = bubblePopHandlers[bubble.id];if(!bubbleHandler)return null;return _jsx(BubbleComponent,{bubble:bubble,size:bubbleSize,onPop:bubbleHandler,hapticEnabled:hapticEnabled,isPlaying:isPlaying},bubble.id);}))})]});};const styles = StyleSheet.create({container:{position:'relative',padding:15},backgroundContainer:{position:'absolute'},fidget3D:{shadowColor:'#000',shadowOffset:{width:0,height:8},shadowOpacity:0.4,shadowRadius:12,elevation:12},outerBorder:{position:'absolute',backgroundColor:'#f0f0f0',borderWidth:2,borderTopColor:'#ffffff',borderLeftColor:'#ffffff',borderRightColor:'#cccccc',borderBottomColor:'#aaaaaa'},innerRecess:{backgroundColor:'#e8e8e8',borderWidth:1,borderTopColor:'#cccccc',borderLeftColor:'#cccccc',borderRightColor:'#ffffff',borderBottomColor:'#ffffff',shadowColor:'#000',shadowOffset:{width:0,height:-2},shadowOpacity:0.2,shadowRadius:4,elevation:-2}});const MemoizedFidgetGrid = React.memo(FidgetGrid,(prevProps,nextProps)=>{return prevProps.grid.size === nextProps.grid.size && prevProps.grid.width === nextProps.grid.width && prevProps.grid.height === nextProps.grid.height && prevProps.bubbleSize === nextProps.bubbleSize && prevProps.hapticEnabled === nextProps.hapticEnabled && prevProps.isPlaying === nextProps.isPlaying && prevProps.onBubblePop === nextProps.onBubblePop && JSON.stringify(prevProps.grid.bubbles.map(row => row.map(bubble => bubble ?{id:bubble.id,isPopped:bubble.isPopped}:null)))=== JSON.stringify(nextProps.grid.bubbles.map(row => row.map(bubble => bubble ?{id:bubble.id,isPopped:bubble.isPopped}:null)));});export default MemoizedFidgetGrid;
|
|
@@ -1,177 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import { StyleSheet, View } from 'react-native';
|
|
5
|
-
import { Canvas, LinearGradient, Rect, Circle, vec } from '@shopify/react-native-skia';
|
|
6
|
-
import { RAINBOW_COLORS } from "../PopitFidgetConstants.js";
|
|
7
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
-
const GameBackground = ({
|
|
9
|
-
width,
|
|
10
|
-
height
|
|
11
|
-
}) => {
|
|
12
|
-
// Generate static colorful floating bubble decorations with subtle positioning variations
|
|
13
|
-
const generateFloatingBubbles = React.useMemo(() => {
|
|
14
|
-
const bubbles = [];
|
|
15
|
-
const bubbleCount = 15; // Reduced count for better performance
|
|
16
|
-
|
|
17
|
-
for (let i = 0; i < bubbleCount; i++) {
|
|
18
|
-
const baseX = width / bubbleCount * i;
|
|
19
|
-
const baseY = height / bubbleCount * i;
|
|
20
|
-
|
|
21
|
-
// Add subtle random offset for natural look
|
|
22
|
-
const x = baseX + Math.sin(i * 0.5) * 30 + Math.random() * 60;
|
|
23
|
-
const y = baseY + Math.cos(i * 0.7) * 40 + Math.random() * 80;
|
|
24
|
-
const radius = 8 + Math.random() * 12;
|
|
25
|
-
const colorIndex = i % RAINBOW_COLORS.length; // Cycle through colors for consistency
|
|
26
|
-
const opacity = 0.2 + Math.sin(i) * 0.1; // Subtle opacity variation
|
|
27
|
-
|
|
28
|
-
bubbles.push(/*#__PURE__*/_jsx(Circle, {
|
|
29
|
-
cx: Math.max(radius, Math.min(width - radius, x)),
|
|
30
|
-
cy: Math.max(radius, Math.min(height - radius, y)),
|
|
31
|
-
r: radius,
|
|
32
|
-
color: `${RAINBOW_COLORS[colorIndex]}${Math.floor(opacity * 255).toString(16).padStart(2, '0')}`
|
|
33
|
-
}, `floating-bubble-${i}`));
|
|
34
|
-
}
|
|
35
|
-
return bubbles;
|
|
36
|
-
}, [width, height]);
|
|
37
|
-
return /*#__PURE__*/_jsx(View, {
|
|
38
|
-
style: StyleSheet.absoluteFillObject,
|
|
39
|
-
children: /*#__PURE__*/_jsxs(Canvas, {
|
|
40
|
-
style: {
|
|
41
|
-
width,
|
|
42
|
-
height
|
|
43
|
-
},
|
|
44
|
-
children: [/*#__PURE__*/_jsx(Rect, {
|
|
45
|
-
x: 0,
|
|
46
|
-
y: 0,
|
|
47
|
-
width: width,
|
|
48
|
-
height: height,
|
|
49
|
-
children: /*#__PURE__*/_jsx(LinearGradient, {
|
|
50
|
-
start: vec(0, 0),
|
|
51
|
-
end: vec(width, height),
|
|
52
|
-
colors: [`${RAINBOW_COLORS[0]}40`,
|
|
53
|
-
// Vibrant pink
|
|
54
|
-
`${RAINBOW_COLORS[2]}35`,
|
|
55
|
-
// Vibrant orange
|
|
56
|
-
`${RAINBOW_COLORS[4]}40`,
|
|
57
|
-
// Vibrant yellow
|
|
58
|
-
`${RAINBOW_COLORS[6]}35`,
|
|
59
|
-
// Vibrant lime
|
|
60
|
-
`${RAINBOW_COLORS[8]}40`,
|
|
61
|
-
// Vibrant green
|
|
62
|
-
`${RAINBOW_COLORS[10]}35`,
|
|
63
|
-
// Vibrant cyan
|
|
64
|
-
`${RAINBOW_COLORS[12]}40`,
|
|
65
|
-
// Vibrant blue
|
|
66
|
-
`${RAINBOW_COLORS[14]}35` // Vibrant purple
|
|
67
|
-
]
|
|
68
|
-
})
|
|
69
|
-
}), /*#__PURE__*/_jsx(Rect, {
|
|
70
|
-
x: 0,
|
|
71
|
-
y: 0,
|
|
72
|
-
width: width,
|
|
73
|
-
height: height,
|
|
74
|
-
children: /*#__PURE__*/_jsx(LinearGradient, {
|
|
75
|
-
start: vec(0, 0),
|
|
76
|
-
end: vec(width / 2, height / 2),
|
|
77
|
-
colors: [`${RAINBOW_COLORS[1]}25`,
|
|
78
|
-
// Bright red
|
|
79
|
-
'transparent', `${RAINBOW_COLORS[5]}25`,
|
|
80
|
-
// Bright deep purple
|
|
81
|
-
'transparent', `${RAINBOW_COLORS[9]}25`,
|
|
82
|
-
// Bright teal
|
|
83
|
-
'transparent', `${RAINBOW_COLORS[13]}25`,
|
|
84
|
-
// Bright indigo
|
|
85
|
-
'transparent']
|
|
86
|
-
})
|
|
87
|
-
}), /*#__PURE__*/_jsx(Rect, {
|
|
88
|
-
x: 0,
|
|
89
|
-
y: 0,
|
|
90
|
-
width: width,
|
|
91
|
-
height: height,
|
|
92
|
-
children: /*#__PURE__*/_jsx(LinearGradient, {
|
|
93
|
-
start: vec(width, 0),
|
|
94
|
-
end: vec(0, height),
|
|
95
|
-
colors: [`${RAINBOW_COLORS[3]}20`,
|
|
96
|
-
// Bright orange
|
|
97
|
-
'transparent', `${RAINBOW_COLORS[7]}20`,
|
|
98
|
-
// Bright light green
|
|
99
|
-
'transparent', `${RAINBOW_COLORS[11]}20`,
|
|
100
|
-
// Bright light blue
|
|
101
|
-
'transparent']
|
|
102
|
-
})
|
|
103
|
-
}), generateFloatingBubbles, /*#__PURE__*/_jsx(Circle, {
|
|
104
|
-
cx: width * 0.1,
|
|
105
|
-
cy: height * 0.15,
|
|
106
|
-
r: 40,
|
|
107
|
-
color: `${RAINBOW_COLORS[0]}30` // Vibrant pink
|
|
108
|
-
}), /*#__PURE__*/_jsx(Circle, {
|
|
109
|
-
cx: width * 0.9,
|
|
110
|
-
cy: height * 0.85,
|
|
111
|
-
r: 35,
|
|
112
|
-
color: `${RAINBOW_COLORS[3]}30` // Vibrant orange
|
|
113
|
-
}), /*#__PURE__*/_jsx(Circle, {
|
|
114
|
-
cx: width * 0.85,
|
|
115
|
-
cy: height * 0.2,
|
|
116
|
-
r: 30,
|
|
117
|
-
color: `${RAINBOW_COLORS[8]}30` // Vibrant green
|
|
118
|
-
}), /*#__PURE__*/_jsx(Circle, {
|
|
119
|
-
cx: width * 0.15,
|
|
120
|
-
cy: height * 0.8,
|
|
121
|
-
r: 45,
|
|
122
|
-
color: `${RAINBOW_COLORS[12]}30` // Vibrant blue
|
|
123
|
-
}), /*#__PURE__*/_jsx(Circle, {
|
|
124
|
-
cx: width * 0.5,
|
|
125
|
-
cy: height * 0.1,
|
|
126
|
-
r: 25,
|
|
127
|
-
color: `${RAINBOW_COLORS[14]}30` // Vibrant purple
|
|
128
|
-
}), /*#__PURE__*/_jsx(Circle, {
|
|
129
|
-
cx: width * 0.2,
|
|
130
|
-
cy: height * 0.5,
|
|
131
|
-
r: 32,
|
|
132
|
-
color: `${RAINBOW_COLORS[6]}30` // Vibrant lime
|
|
133
|
-
}), /*#__PURE__*/_jsx(Circle, {
|
|
134
|
-
cx: width * 0.8,
|
|
135
|
-
cy: height * 0.6,
|
|
136
|
-
r: 28,
|
|
137
|
-
color: `${RAINBOW_COLORS[10]}30` // Vibrant cyan
|
|
138
|
-
}), /*#__PURE__*/_jsx(Circle, {
|
|
139
|
-
cx: width * 0.6,
|
|
140
|
-
cy: height * 0.9,
|
|
141
|
-
r: 20,
|
|
142
|
-
color: `${RAINBOW_COLORS[1]}30` // Vibrant red
|
|
143
|
-
}), /*#__PURE__*/_jsx(Circle, {
|
|
144
|
-
cx: width * 0.3,
|
|
145
|
-
cy: height * 0.25,
|
|
146
|
-
r: 24,
|
|
147
|
-
color: `${RAINBOW_COLORS[4]}30` // Vibrant yellow
|
|
148
|
-
}), /*#__PURE__*/_jsx(Circle, {
|
|
149
|
-
cx: width * 0.7,
|
|
150
|
-
cy: height * 0.35,
|
|
151
|
-
r: 26,
|
|
152
|
-
color: `${RAINBOW_COLORS[9]}30` // Vibrant teal
|
|
153
|
-
}), Array.from({
|
|
154
|
-
length: Math.floor(width / 40)
|
|
155
|
-
}, (_, i) => /*#__PURE__*/_jsx(Rect, {
|
|
156
|
-
x: i * 40,
|
|
157
|
-
y: 0,
|
|
158
|
-
width: 1,
|
|
159
|
-
height: height,
|
|
160
|
-
color: "rgba(0, 0, 0, 0.02)"
|
|
161
|
-
}, `grid-v-${i}`)), Array.from({
|
|
162
|
-
length: Math.floor(height / 40)
|
|
163
|
-
}, (_, i) => /*#__PURE__*/_jsx(Rect, {
|
|
164
|
-
x: 0,
|
|
165
|
-
y: i * 40,
|
|
166
|
-
width: width,
|
|
167
|
-
height: 1,
|
|
168
|
-
color: "rgba(0, 0, 0, 0.02)"
|
|
169
|
-
}, `grid-h-${i}`))]
|
|
170
|
-
})
|
|
171
|
-
});
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
// Memoize GameBackground to prevent unnecessary re-renders
|
|
175
|
-
const MemoizedGameBackground = /*#__PURE__*/React.memo(GameBackground);
|
|
176
|
-
export default MemoizedGameBackground;
|
|
177
|
-
//# sourceMappingURL=GameBackground.js.map
|
|
1
|
+
"use strict";import React from 'react';import{StyleSheet,View}from 'react-native';import{Canvas,LinearGradient,Rect,Circle,vec}from '@shopify/react-native-skia';import{RAINBOW_COLORS}from "../PopitFidgetConstants.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const GameBackground =({width,height})=>{const generateFloatingBubbles = React.useMemo(()=>{const bubbles = [];const bubbleCount = 15;for(let i = 0;i < bubbleCount;i++){const baseX = width / bubbleCount * i;const baseY = height / bubbleCount * i;const x = baseX + Math.sin(i * 0.5)* 30 + Math.random()* 60;const y = baseY + Math.cos(i * 0.7)* 40 + Math.random()* 80;const radius = 8 + Math.random()* 12;const colorIndex = i % RAINBOW_COLORS.length;const opacity = 0.2 + Math.sin(i)* 0.1;bubbles.push(_jsx(Circle,{cx:Math.max(radius,Math.min(width - radius,x)),cy:Math.max(radius,Math.min(height - radius,y)),r:radius,color:`${RAINBOW_COLORS[colorIndex]}${Math.floor(opacity * 255).toString(16).padStart(2,'0')}`},`floating-bubble-${i}`));}return bubbles;},[width,height]);return _jsx(View,{style:StyleSheet.absoluteFillObject,children:_jsxs(Canvas,{style:{width,height},children:[_jsx(Rect,{x:0,y:0,width:width,height:height,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(width,height),colors:[`${RAINBOW_COLORS[0]}40`,`${RAINBOW_COLORS[2]}35`,`${RAINBOW_COLORS[4]}40`,`${RAINBOW_COLORS[6]}35`,`${RAINBOW_COLORS[8]}40`,`${RAINBOW_COLORS[10]}35`,`${RAINBOW_COLORS[12]}40`,`${RAINBOW_COLORS[14]}35` ]})}),_jsx(Rect,{x:0,y:0,width:width,height:height,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(width / 2,height / 2),colors:[`${RAINBOW_COLORS[1]}25`,'transparent',`${RAINBOW_COLORS[5]}25`,'transparent',`${RAINBOW_COLORS[9]}25`,'transparent',`${RAINBOW_COLORS[13]}25`,'transparent']})}),_jsx(Rect,{x:0,y:0,width:width,height:height,children:_jsx(LinearGradient,{start:vec(width,0),end:vec(0,height),colors:[`${RAINBOW_COLORS[3]}20`,'transparent',`${RAINBOW_COLORS[7]}20`,'transparent',`${RAINBOW_COLORS[11]}20`,'transparent']})}),generateFloatingBubbles,_jsx(Circle,{cx:width * 0.1,cy:height * 0.15,r:40,color:`${RAINBOW_COLORS[0]}30`}),_jsx(Circle,{cx:width * 0.9,cy:height * 0.85,r:35,color:`${RAINBOW_COLORS[3]}30`}),_jsx(Circle,{cx:width * 0.85,cy:height * 0.2,r:30,color:`${RAINBOW_COLORS[8]}30`}),_jsx(Circle,{cx:width * 0.15,cy:height * 0.8,r:45,color:`${RAINBOW_COLORS[12]}30`}),_jsx(Circle,{cx:width * 0.5,cy:height * 0.1,r:25,color:`${RAINBOW_COLORS[14]}30`}),_jsx(Circle,{cx:width * 0.2,cy:height * 0.5,r:32,color:`${RAINBOW_COLORS[6]}30`}),_jsx(Circle,{cx:width * 0.8,cy:height * 0.6,r:28,color:`${RAINBOW_COLORS[10]}30`}),_jsx(Circle,{cx:width * 0.6,cy:height * 0.9,r:20,color:`${RAINBOW_COLORS[1]}30`}),_jsx(Circle,{cx:width * 0.3,cy:height * 0.25,r:24,color:`${RAINBOW_COLORS[4]}30`}),_jsx(Circle,{cx:width * 0.7,cy:height * 0.35,r:26,color:`${RAINBOW_COLORS[9]}30`}),Array.from({length:Math.floor(width / 40)},(_,i)=> _jsx(Rect,{x:i * 40,y:0,width:1,height:height,color:"rgba(0,0,0,0.02)"},`grid-v-${i}`)),Array.from({length:Math.floor(height / 40)},(_,i)=> _jsx(Rect,{x:0,y:i * 40,width:width,height:1,color:"rgba(0,0,0,0.02)"},`grid-h-${i}`))]})});};const MemoizedGameBackground = React.memo(GameBackground);export default MemoizedGameBackground;
|
|
@@ -1,61 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import { View, Text, StyleSheet } from 'react-native';
|
|
5
|
-
import { ScoreBoardContainer } from "../../../helpers/index.js";
|
|
6
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
-
const ScoreBoard = ({
|
|
8
|
-
timeElapsed,
|
|
9
|
-
offset = 0
|
|
10
|
-
}) => {
|
|
11
|
-
// Format time as MM:SS
|
|
12
|
-
const formatTime = seconds => {
|
|
13
|
-
const mins = Math.floor(seconds / 60);
|
|
14
|
-
const secs = seconds % 60;
|
|
15
|
-
return `${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
|
|
16
|
-
};
|
|
17
|
-
return /*#__PURE__*/_jsx(ScoreBoardContainer, {
|
|
18
|
-
offset: offset,
|
|
19
|
-
backgroundColor: "rgba(108, 92, 231, 0.4)",
|
|
20
|
-
borderColor: "rgba(139, 92, 246, 0.3)",
|
|
21
|
-
children: /*#__PURE__*/_jsx(View, {
|
|
22
|
-
style: styles.scoreBoard,
|
|
23
|
-
children: /*#__PURE__*/_jsxs(View, {
|
|
24
|
-
style: styles.scoreSection,
|
|
25
|
-
children: [/*#__PURE__*/_jsx(Text, {
|
|
26
|
-
style: styles.scoreLabel,
|
|
27
|
-
children: "Time Elapsed"
|
|
28
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
29
|
-
style: styles.timeValue,
|
|
30
|
-
children: formatTime(timeElapsed)
|
|
31
|
-
})]
|
|
32
|
-
})
|
|
33
|
-
})
|
|
34
|
-
});
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
// Memoize ScoreBoard to prevent unnecessary re-renders
|
|
38
|
-
const MemoizedScoreBoard = /*#__PURE__*/React.memo(ScoreBoard);
|
|
39
|
-
const styles = StyleSheet.create({
|
|
40
|
-
scoreBoard: {
|
|
41
|
-
flexDirection: 'row',
|
|
42
|
-
justifyContent: 'center',
|
|
43
|
-
alignItems: 'center'
|
|
44
|
-
},
|
|
45
|
-
scoreSection: {
|
|
46
|
-
alignItems: 'center'
|
|
47
|
-
},
|
|
48
|
-
scoreLabel: {
|
|
49
|
-
fontSize: 18,
|
|
50
|
-
fontWeight: 'bold',
|
|
51
|
-
color: '#ffffff',
|
|
52
|
-
marginBottom: 4
|
|
53
|
-
},
|
|
54
|
-
timeValue: {
|
|
55
|
-
fontSize: 30,
|
|
56
|
-
fontWeight: 'bold',
|
|
57
|
-
color: '#1e1b4b' // Dark purple color for Pop It theme
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
export default MemoizedScoreBoard;
|
|
61
|
-
//# sourceMappingURL=ScoreBoard.js.map
|
|
1
|
+
"use strict";import React from 'react';import{View,Text,StyleSheet}from 'react-native';import{ScoreBoardContainer}from "../../../helpers/index.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const ScoreBoard =({timeElapsed,offset = 0})=>{const formatTime = seconds =>{const mins = Math.floor(seconds / 60);const secs = seconds % 60;return `${mins.toString().padStart(2,'0')}:${secs.toString().padStart(2,'0')}`;};return _jsx(ScoreBoardContainer,{offset:offset,backgroundColor:"rgba(108,92,231,0.4)",borderColor:"rgba(139,92,246,0.3)",children:_jsx(View,{style:styles.scoreBoard,children:_jsxs(View,{style:styles.scoreSection,children:[_jsx(Text,{style:styles.scoreLabel,children:"Time Elapsed"}),_jsx(Text,{style:styles.timeValue,children:formatTime(timeElapsed)})]})})});};const MemoizedScoreBoard = React.memo(ScoreBoard);const styles = StyleSheet.create({scoreBoard:{flexDirection:'row',justifyContent:'center',alignItems:'center'},scoreSection:{alignItems:'center'},scoreLabel:{fontSize:16,fontWeight:'bold',color:'#ffffff',marginBottom:4},timeValue:{fontSize:25,fontWeight:'bold',color:'#1e1b4b'}});export default MemoizedScoreBoard;
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
export { default as BubbleComponent } from "./BubbleComponent.js";
|
|
4
|
-
export { default as FidgetGrid } from "./FidgetGrid.js";
|
|
5
|
-
export { default as ScoreBoard } from "./ScoreBoard.js";
|
|
6
|
-
export { default as GameBackground } from "./GameBackground.js";
|
|
7
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
"use strict";export{default as BubbleComponent}from "./BubbleComponent.js";export{default as FidgetGrid}from "./FidgetGrid.js";export{default as ScoreBoard}from "./ScoreBoard.js";export{default as GameBackground}from "./GameBackground.js";
|
|
@@ -1,159 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import React, { useEffect, useMemo, useCallback } from 'react';
|
|
4
|
-
import { View, StyleSheet } from 'react-native';
|
|
5
|
-
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
6
|
-
import { useSlidingNumbersStore } from "./SlidingNumbersStore.js";
|
|
7
|
-
import { SlidingNumbersService } from "./SlidingNumbersService.js";
|
|
8
|
-
import { GameBackground, NumbersGrid, ScoreBoard } from "./components/index.js";
|
|
9
|
-
import { GameControlButton, GameOverModal } from "../../helpers/index.js";
|
|
10
|
-
import { GameSettingsModal } from "../../helpers/index.js";
|
|
11
|
-
import { SLIDING_NUMBERS_COLORS } from "./SlidingNumbersConstants.js";
|
|
12
|
-
import { GAME_IDS, DEFAULT_GAME_SETTINGS } from "../../services/UtilsService.js";
|
|
13
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
-
export const SlidingNumbers = /*#__PURE__*/React.memo(({
|
|
15
|
-
settings = DEFAULT_GAME_SETTINGS,
|
|
16
|
-
onSettingsChange
|
|
17
|
-
}) => {
|
|
18
|
-
// Read UI-critical state independently to minimize re-renders
|
|
19
|
-
const isPlaying = useSlidingNumbersStore(state => state.isPlaying);
|
|
20
|
-
const isCompleted = useSlidingNumbersStore(state => state.isCompleted);
|
|
21
|
-
const score = useSlidingNumbersStore(state => state.score);
|
|
22
|
-
|
|
23
|
-
// Get store actions independently (these don't cause re-renders)
|
|
24
|
-
const initializePuzzle = useSlidingNumbersStore(state => state.initializePuzzle);
|
|
25
|
-
const shufflePuzzle = useSlidingNumbersStore(state => state.shufflePuzzle);
|
|
26
|
-
const startGame = useSlidingNumbersStore(state => state.startGame);
|
|
27
|
-
const stopGame = useSlidingNumbersStore(state => state.stopGame);
|
|
28
|
-
const resetGame = useSlidingNumbersStore(state => state.resetGame);
|
|
29
|
-
const decrementTime = useSlidingNumbersStore(state => state.decrementTime);
|
|
30
|
-
|
|
31
|
-
// Get difficulty from external settings
|
|
32
|
-
const difficulty = settings?.difficulty || 'easy';
|
|
33
|
-
|
|
34
|
-
// Memoized game service creation to prevent recreation
|
|
35
|
-
const gameService = useMemo(() => new SlidingNumbersService(), []);
|
|
36
|
-
|
|
37
|
-
// Memoized difficulty settings
|
|
38
|
-
const difficultySettings = useMemo(() => gameService.getDifficultySettings(difficulty), [gameService, difficulty]);
|
|
39
|
-
|
|
40
|
-
// Initialize puzzle when difficulty changes
|
|
41
|
-
useEffect(() => {
|
|
42
|
-
initializePuzzle(difficultySettings.gridSize);
|
|
43
|
-
}, [difficulty, difficultySettings.gridSize, initializePuzzle]);
|
|
44
|
-
|
|
45
|
-
// Game timer effect
|
|
46
|
-
useEffect(() => {
|
|
47
|
-
if (isPlaying) {
|
|
48
|
-
gameService.startTimer(() => {
|
|
49
|
-
decrementTime();
|
|
50
|
-
});
|
|
51
|
-
} else {
|
|
52
|
-
gameService.stopTimer();
|
|
53
|
-
}
|
|
54
|
-
return () => {
|
|
55
|
-
gameService.stopTimer();
|
|
56
|
-
};
|
|
57
|
-
}, [isPlaying, gameService, decrementTime]);
|
|
58
|
-
|
|
59
|
-
// Cleanup on unmount
|
|
60
|
-
useEffect(() => {
|
|
61
|
-
return () => {
|
|
62
|
-
gameService.cleanup();
|
|
63
|
-
};
|
|
64
|
-
}, [gameService]);
|
|
65
|
-
|
|
66
|
-
// Memoized game control handlers
|
|
67
|
-
const handleStartGame = useCallback(() => {
|
|
68
|
-
shufflePuzzle();
|
|
69
|
-
startGame();
|
|
70
|
-
}, [shufflePuzzle, startGame]);
|
|
71
|
-
const handleStopGame = useCallback(() => {
|
|
72
|
-
stopGame();
|
|
73
|
-
}, [stopGame]);
|
|
74
|
-
const handleResetGame = useCallback(() => {
|
|
75
|
-
resetGame();
|
|
76
|
-
// Re-initialize with current difficulty from settings
|
|
77
|
-
initializePuzzle(difficultySettings.gridSize);
|
|
78
|
-
}, [resetGame, initializePuzzle, difficultySettings.gridSize]);
|
|
79
|
-
|
|
80
|
-
// Memoize GameControlButton props to prevent re-renders (CRITICAL)
|
|
81
|
-
const gameControlButtonProps = useMemo(() => ({
|
|
82
|
-
isPlaying,
|
|
83
|
-
gameOver: isCompleted,
|
|
84
|
-
onStartGame: handleStartGame,
|
|
85
|
-
onStopGame: handleStopGame,
|
|
86
|
-
startButtonText: "START GAME",
|
|
87
|
-
stopButtonText: "STOP GAME",
|
|
88
|
-
startButtonSubtext: "Shuffle and begin solving!",
|
|
89
|
-
stopButtonSubtext: "End current game",
|
|
90
|
-
startButtonColor: SLIDING_NUMBERS_COLORS.START_BUTTON,
|
|
91
|
-
stopButtonColor: "#dc2626",
|
|
92
|
-
startButtonBorderColor: SLIDING_NUMBERS_COLORS.BUTTON_BORDER,
|
|
93
|
-
stopButtonBorderColor: "#f87171"
|
|
94
|
-
}), [isPlaying, isCompleted, handleStartGame, handleStopGame]);
|
|
95
|
-
|
|
96
|
-
// Memoize GameOverModal props
|
|
97
|
-
const gameOverModalProps = useMemo(() => ({
|
|
98
|
-
isVisible: isCompleted,
|
|
99
|
-
score,
|
|
100
|
-
onPlayAgain: handleResetGame,
|
|
101
|
-
buttonText: "Play Again!",
|
|
102
|
-
primaryColor: SLIDING_NUMBERS_COLORS.COMPLETION_OVERLAY,
|
|
103
|
-
borderColor: "rgba(245, 158, 11, 0.9)",
|
|
104
|
-
buttonColor: SLIDING_NUMBERS_COLORS.START_BUTTON,
|
|
105
|
-
buttonBorderColor: SLIDING_NUMBERS_COLORS.BUTTON_BORDER
|
|
106
|
-
}), [isCompleted, score, handleResetGame]);
|
|
107
|
-
|
|
108
|
-
// Memoize GameSettingsModal props
|
|
109
|
-
const gameSettingsModalProps = useMemo(() => ({
|
|
110
|
-
gameId: GAME_IDS.SLIDING_NUMBERS,
|
|
111
|
-
settings: settings || DEFAULT_GAME_SETTINGS,
|
|
112
|
-
onSettingsChange
|
|
113
|
-
}), [settings, onSettingsChange]);
|
|
114
|
-
|
|
115
|
-
// Get offset from settings
|
|
116
|
-
const offset = settings?.offset ?? 0;
|
|
117
|
-
|
|
118
|
-
// Memoized dynamic styles based on offset
|
|
119
|
-
const dynamicStyles = useMemo(() => ({
|
|
120
|
-
gameArea: {
|
|
121
|
-
...styles.gameArea,
|
|
122
|
-
marginTop: offset // Add margin to shift grid down while maintaining centering
|
|
123
|
-
}
|
|
124
|
-
}), [offset]);
|
|
125
|
-
return /*#__PURE__*/_jsx(View, {
|
|
126
|
-
style: styles.container,
|
|
127
|
-
children: /*#__PURE__*/_jsx(GestureHandlerRootView, {
|
|
128
|
-
children: /*#__PURE__*/_jsxs(GameBackground, {
|
|
129
|
-
children: [/*#__PURE__*/_jsx(View, {
|
|
130
|
-
style: dynamicStyles.gameArea,
|
|
131
|
-
children: /*#__PURE__*/_jsx(NumbersGrid, {
|
|
132
|
-
difficulty: difficulty
|
|
133
|
-
})
|
|
134
|
-
}), /*#__PURE__*/_jsx(ScoreBoard, {
|
|
135
|
-
offset: offset
|
|
136
|
-
}), /*#__PURE__*/_jsx(GameControlButton, {
|
|
137
|
-
...gameControlButtonProps
|
|
138
|
-
}), /*#__PURE__*/_jsx(GameOverModal, {
|
|
139
|
-
...gameOverModalProps
|
|
140
|
-
}), /*#__PURE__*/_jsx(GameSettingsModal, {
|
|
141
|
-
...gameSettingsModalProps
|
|
142
|
-
})]
|
|
143
|
-
})
|
|
144
|
-
})
|
|
145
|
-
});
|
|
146
|
-
});
|
|
147
|
-
const styles = StyleSheet.create({
|
|
148
|
-
container: {
|
|
149
|
-
flex: 1,
|
|
150
|
-
backgroundColor: SLIDING_NUMBERS_COLORS.BACKGROUND
|
|
151
|
-
},
|
|
152
|
-
gameArea: {
|
|
153
|
-
flex: 1,
|
|
154
|
-
justifyContent: 'center',
|
|
155
|
-
alignItems: 'center'
|
|
156
|
-
}
|
|
157
|
-
});
|
|
158
|
-
SlidingNumbers.displayName = 'SlidingNumbers';
|
|
159
|
-
//# sourceMappingURL=SlidingNumbers.js.map
|
|
1
|
+
"use strict";import React,{useEffect,useMemo,useCallback}from 'react';import{View,StyleSheet}from 'react-native';import{GestureHandlerRootView}from 'react-native-gesture-handler';import{useSlidingNumbersStore}from "./SlidingNumbersStore.js";import{SlidingNumbersService}from "./SlidingNumbersService.js";import{GameBackground,NumbersGrid,ScoreBoard}from "./components/index.js";import{GameControlButton,GameOverModal}from "../../helpers/index.js";import{GameSettingsModal}from "../../helpers/index.js";import{SLIDING_NUMBERS_COLORS}from "./SlidingNumbersConstants.js";import{GAME_IDS,DEFAULT_GAME_SETTINGS}from "../../services/UtilsService.js";import{calculateTimeBasedScore}from "../../services/ScoringService.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";export const SlidingNumbers = React.memo(({settings = DEFAULT_GAME_SETTINGS,onSettingsChange,onEndGame})=>{const score = useSlidingNumbersStore(state => state.score);const timeElapsed = useSlidingNumbersStore(state => state.timeElapsed);const isPlaying = useSlidingNumbersStore(state => state.isPlaying);const isCompleted = useSlidingNumbersStore(state => state.isCompleted);const gameReportedRef = React.useRef(false);const difficulty = settings?.difficulty || 'easy';const reportGameEnd = React.useCallback(status =>{if(onEndGame && !gameReportedRef.current){const expectedTimes ={easy:120,medium:180,hard:240};const expectedTime = expectedTimes[difficulty];const calculatedScore = status === 'win' ? calculateTimeBasedScore(timeElapsed,expectedTime):0;onEndGame({status,score:calculatedScore.toString()});gameReportedRef.current = true;}},[onEndGame,timeElapsed,difficulty]);const initializePuzzle = useSlidingNumbersStore(state => state.initializePuzzle);const shufflePuzzle = useSlidingNumbersStore(state => state.shufflePuzzle);const startGame = useSlidingNumbersStore(state => state.startGame);const stopGame = useSlidingNumbersStore(state => state.stopGame);const resetGame = useSlidingNumbersStore(state => state.resetGame);const decrementTime = useSlidingNumbersStore(state => state.decrementTime);const gameService = useMemo(()=> new SlidingNumbersService(),[]);const difficultySettings = useMemo(()=> gameService.getDifficultySettings(difficulty),[gameService,difficulty]);useEffect(()=>{initializePuzzle(difficultySettings.gridSize);},[difficulty,difficultySettings.gridSize,initializePuzzle]);useEffect(()=>{if(isPlaying){gameService.startTimer(()=>{decrementTime();});}else{gameService.stopTimer();}return()=>{gameService.stopTimer();};},[isPlaying,gameService,decrementTime]);useEffect(()=>{if(isCompleted && !gameReportedRef.current){reportGameEnd('win');}if(!isCompleted){gameReportedRef.current = false;}},[isCompleted,reportGameEnd]);useEffect(()=>{return()=>{gameService.cleanup();};},[gameService]);const handleStartGame = useCallback(()=>{gameReportedRef.current = false;shufflePuzzle();startGame();},[shufflePuzzle,startGame]);const handleStopGame = useCallback(()=>{reportGameEnd('cancel');stopGame();},[stopGame,reportGameEnd]);const handleResetGame = useCallback(()=>{resetGame();initializePuzzle(difficultySettings.gridSize);},[resetGame,initializePuzzle,difficultySettings.gridSize]);const gameControlButtonProps = useMemo(()=>({isPlaying,gameOver:isCompleted,onStartGame:handleStartGame,onStopGame:handleStopGame,startButtonText:"START GAME",stopButtonText:"STOP GAME",startButtonSubtext:"Shuffle and begin solving!",stopButtonSubtext:"End current game",startButtonColor:SLIDING_NUMBERS_COLORS.START_BUTTON,stopButtonColor:"#dc2626",startButtonBorderColor:SLIDING_NUMBERS_COLORS.BUTTON_BORDER,stopButtonBorderColor:"#f87171"}),[isPlaying,isCompleted,handleStartGame,handleStopGame]);const gameOverModalProps = useMemo(()=>({isVisible:isCompleted,score,onPlayAgain:handleResetGame,buttonText:"Play Again!",primaryColor:"rgba(245,158,11,0.5)",borderColor:"rgba(245,158,11,0.5)",buttonColor:"#ffffff",buttonBorderColor:"#ffffff",buttonTextColor:"#f59e0b"}),[isCompleted,score,handleResetGame]);const gameSettingsModalProps = useMemo(()=>({gameId:GAME_IDS.SLIDING_NUMBERS,settings:settings || DEFAULT_GAME_SETTINGS,onSettingsChange}),[settings,onSettingsChange]);const offset = settings?.offset ?? 0;const dynamicStyles = useMemo(()=>({gameArea:{...styles.gameArea,marginTop:offset}}),[offset]);return _jsx(View,{style:styles.container,children:_jsx(GestureHandlerRootView,{children:_jsxs(GameBackground,{children:[_jsx(View,{style:dynamicStyles.gameArea,children:_jsx(NumbersGrid,{difficulty:difficulty})}),_jsx(ScoreBoard,{offset:offset}),_jsx(GameControlButton,{...gameControlButtonProps}),_jsx(GameOverModal,{...gameOverModalProps}),_jsx(GameSettingsModal,{...gameSettingsModalProps})]})})});});const styles = StyleSheet.create({container:{flex:1,backgroundColor:SLIDING_NUMBERS_COLORS.BACKGROUND},gameArea:{flex:1,justifyContent:'center',alignItems:'center'}});SlidingNumbers.displayName = 'SlidingNumbers';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useMemo","useCallback","View","StyleSheet","GestureHandlerRootView","useSlidingNumbersStore","SlidingNumbersService","GameBackground","NumbersGrid","ScoreBoard","GameControlButton","GameOverModal","GameSettingsModal","SLIDING_NUMBERS_COLORS","GAME_IDS","DEFAULT_GAME_SETTINGS","jsx","_jsx","jsxs","_jsxs","SlidingNumbers","memo","settings","onSettingsChange","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useMemo","useCallback","View","StyleSheet","GestureHandlerRootView","useSlidingNumbersStore","SlidingNumbersService","GameBackground","NumbersGrid","ScoreBoard","GameControlButton","GameOverModal","GameSettingsModal","SLIDING_NUMBERS_COLORS","GAME_IDS","DEFAULT_GAME_SETTINGS","calculateTimeBasedScore","jsx","_jsx","jsxs","_jsxs","SlidingNumbers","memo","settings","onSettingsChange","onEndGame","score","state","timeElapsed","isPlaying","isCompleted","gameReportedRef","useRef","difficulty","reportGameEnd","status","current","expectedTimes","easy","medium","hard","expectedTime","calculatedScore","toString","initializePuzzle","shufflePuzzle","startGame","stopGame","resetGame","decrementTime","gameService","difficultySettings","getDifficultySettings","gridSize","startTimer","stopTimer","cleanup","handleStartGame","handleStopGame","handleResetGame","gameControlButtonProps","gameOver","onStartGame","onStopGame","startButtonText","stopButtonText","startButtonSubtext","stopButtonSubtext","startButtonColor","START_BUTTON","stopButtonColor","startButtonBorderColor","BUTTON_BORDER","stopButtonBorderColor","gameOverModalProps","isVisible","onPlayAgain","buttonText","primaryColor","borderColor","buttonColor","buttonBorderColor","buttonTextColor","gameSettingsModalProps","gameId","SLIDING_NUMBERS","offset","dynamicStyles","gameArea","styles","marginTop","style","container","children","create","flex","backgroundColor","BACKGROUND","justifyContent","alignItems","displayName"],"sourceRoot":"../../../../src","sources":["games/sliding-numbers/SlidingNumbers.tsx"],"mappings":"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","ignoreList":[]}
|