react-native-games 0.3.0 → 0.5.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 +134 -130
- package/lib/module/games/balloon-blaster/BalloonBlaster.js +116 -343
- package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
- package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +182 -0
- package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js.map +1 -0
- package/lib/module/games/balloon-blaster/BalloonBlasterService.js +123 -101
- package/lib/module/games/balloon-blaster/BalloonBlasterService.js.map +1 -1
- package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +119 -92
- package/lib/module/games/balloon-blaster/BalloonBlasterStore.js.map +1 -1
- package/lib/module/games/balloon-blaster/components/BalloonComponent.js +123 -113
- package/lib/module/games/balloon-blaster/components/BalloonComponent.js.map +1 -1
- package/lib/module/games/balloon-blaster/components/GameArea.js +137 -23
- package/lib/module/games/balloon-blaster/components/GameArea.js.map +1 -1
- package/lib/module/games/balloon-blaster/components/GameBackground.js +8 -83
- package/lib/module/games/balloon-blaster/components/GameBackground.js.map +1 -1
- package/lib/module/games/balloon-blaster/components/ScoreBoard.js +15 -22
- package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/balloon-blaster/components/index.js +0 -4
- package/lib/module/games/balloon-blaster/components/index.js.map +1 -1
- package/lib/module/games/fruit-ninja/FruitNinja.js +143 -0
- package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -0
- package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +148 -0
- package/lib/module/games/fruit-ninja/FruitNinjaConstants.js.map +1 -0
- package/lib/module/games/{fruit-slicer/FruitSlicerService.js → fruit-ninja/FruitNinjaService.js} +43 -21
- package/lib/module/games/fruit-ninja/FruitNinjaService.js.map +1 -0
- package/lib/module/games/fruit-ninja/FruitNinjaStore.js +191 -0
- package/lib/module/games/fruit-ninja/FruitNinjaStore.js.map +1 -0
- package/lib/module/games/{fruit-slicer → fruit-ninja}/components/FruitComponent.js +1 -1
- package/lib/module/games/fruit-ninja/components/FruitComponent.js.map +1 -0
- package/lib/module/games/fruit-ninja/components/GameArea.js +215 -0
- package/lib/module/games/fruit-ninja/components/GameArea.js.map +1 -0
- package/lib/module/games/{fruit-slicer → fruit-ninja}/components/GameBackground.js +250 -304
- package/lib/module/games/fruit-ninja/components/GameBackground.js.map +1 -0
- package/lib/module/games/{fruit-slicer → fruit-ninja}/components/ScoreBoard.js +17 -47
- package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/fruit-ninja/components/index.js +7 -0
- package/lib/module/games/fruit-ninja/components/index.js.map +1 -0
- package/lib/module/games/maze-runner/MazeRunner.js +184 -169
- package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
- package/lib/module/games/maze-runner/MazeRunnerConstants.js +100 -0
- package/lib/module/games/maze-runner/MazeRunnerConstants.js.map +1 -0
- package/lib/module/games/maze-runner/MazeRunnerService.js +37 -14
- package/lib/module/games/maze-runner/MazeRunnerService.js.map +1 -1
- package/lib/module/games/maze-runner/components/EnhancedBallComponent.js +5 -4
- package/lib/module/games/maze-runner/components/EnhancedBallComponent.js.map +1 -1
- package/lib/module/games/maze-runner/components/EnhancedGameArea.js +20 -15
- package/lib/module/games/maze-runner/components/EnhancedGameArea.js.map +1 -1
- package/lib/module/games/maze-runner/components/GameBackground.js +151 -192
- package/lib/module/games/maze-runner/components/GameBackground.js.map +1 -1
- package/lib/module/games/maze-runner/components/ScoreBoard.js +15 -25
- package/lib/module/games/maze-runner/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/maze-runner/components/WallComponent.js +3 -2
- package/lib/module/games/maze-runner/components/WallComponent.js.map +1 -1
- package/lib/module/games/maze-runner/components/index.js +0 -2
- package/lib/module/games/maze-runner/components/index.js.map +1 -1
- package/lib/module/games/popit-fidget/PopitFidget.js +294 -0
- package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -0
- package/lib/module/games/popit-fidget/PopitFidgetConstants.js +113 -0
- package/lib/module/games/popit-fidget/PopitFidgetConstants.js.map +1 -0
- package/lib/module/games/popit-fidget/PopitFidgetService.js +132 -0
- package/lib/module/games/popit-fidget/PopitFidgetService.js.map +1 -0
- package/lib/module/games/popit-fidget/PopitFidgetStore.js +163 -0
- package/lib/module/games/popit-fidget/PopitFidgetStore.js.map +1 -0
- package/lib/module/games/popit-fidget/components/BubbleComponent.js +198 -0
- package/lib/module/games/popit-fidget/components/BubbleComponent.js.map +1 -0
- package/lib/module/games/popit-fidget/components/FidgetGrid.js +165 -0
- package/lib/module/games/popit-fidget/components/FidgetGrid.js.map +1 -0
- package/lib/module/games/popit-fidget/components/GameBackground.js +177 -0
- package/lib/module/games/popit-fidget/components/GameBackground.js.map +1 -0
- package/lib/module/games/popit-fidget/components/ScoreBoard.js +75 -0
- package/lib/module/games/popit-fidget/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/popit-fidget/components/index.js +7 -0
- package/lib/module/games/popit-fidget/components/index.js.map +1 -0
- package/lib/module/games/space-fighter/SpaceFighter.js +169 -0
- package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -0
- package/lib/module/games/space-fighter/SpaceFighterConstants.js +108 -0
- package/lib/module/games/space-fighter/SpaceFighterConstants.js.map +1 -0
- package/lib/module/games/{space-traveller/SpaceTravellerService.js → space-fighter/SpaceFighterService.js} +48 -21
- package/lib/module/games/space-fighter/SpaceFighterService.js.map +1 -0
- package/lib/module/games/space-fighter/SpaceFighterStore.js +195 -0
- package/lib/module/games/space-fighter/SpaceFighterStore.js.map +1 -0
- package/lib/module/games/{space-traveller → space-fighter}/components/AsteroidComponent.js +7 -5
- package/lib/module/games/space-fighter/components/AsteroidComponent.js.map +1 -0
- package/lib/module/games/space-fighter/components/GameArea.js +295 -0
- package/lib/module/games/space-fighter/components/GameArea.js.map +1 -0
- package/lib/module/games/{space-traveller → space-fighter}/components/GameBackground.js +10 -65
- package/lib/module/games/space-fighter/components/GameBackground.js.map +1 -0
- package/lib/module/games/{space-traveller → space-fighter}/components/ScoreBoard.js +20 -26
- package/lib/module/games/space-fighter/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/{space-traveller → space-fighter}/components/Spacecraft3D.js +72 -111
- package/lib/module/games/space-fighter/components/Spacecraft3D.js.map +1 -0
- package/lib/module/games/space-fighter/components/SpacecraftPath.js +52 -0
- package/lib/module/games/space-fighter/components/SpacecraftPath.js.map +1 -0
- package/lib/module/games/{space-traveller → space-fighter}/components/index.js +0 -4
- package/lib/module/games/space-fighter/components/index.js.map +1 -0
- package/lib/module/games/whack-a-mole/WhackAMole.js +263 -0
- package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -0
- package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +115 -0
- package/lib/module/games/whack-a-mole/WhackAMoleConstants.js.map +1 -0
- package/lib/module/games/whack-a-mole/WhackAMoleService.js +120 -0
- package/lib/module/games/whack-a-mole/WhackAMoleService.js.map +1 -0
- package/lib/module/games/whack-a-mole/WhackAMoleStore.js +172 -0
- package/lib/module/games/whack-a-mole/WhackAMoleStore.js.map +1 -0
- package/lib/module/games/{cat-popper → whack-a-mole}/components/GameBackground.js +31 -91
- package/lib/module/games/whack-a-mole/components/GameBackground.js.map +1 -0
- package/lib/module/games/whack-a-mole/components/GameGrid.js +97 -0
- package/lib/module/games/whack-a-mole/components/GameGrid.js.map +1 -0
- package/lib/module/games/{cat-popper → whack-a-mole}/components/GameHole.js +67 -54
- package/lib/module/games/whack-a-mole/components/GameHole.js.map +1 -0
- package/lib/module/games/{cat-popper/components/CatCharacter.js → whack-a-mole/components/MoleCharacter.js} +75 -115
- package/lib/module/games/whack-a-mole/components/MoleCharacter.js.map +1 -0
- package/lib/module/games/{cat-popper → whack-a-mole}/components/ScoreBoard.js +13 -17
- package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/{cat-popper → whack-a-mole}/components/index.js +1 -3
- package/lib/module/games/whack-a-mole/components/index.js.map +1 -0
- package/lib/module/index.js +4 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/services/GamesConstants.js +41 -519
- package/lib/module/services/GamesConstants.js.map +1 -1
- package/lib/module/services/GamesService.js +35 -23
- package/lib/module/services/GamesService.js.map +1 -1
- package/lib/module/services/HapticsService.js +77 -0
- package/lib/module/services/HapticsService.js.map +1 -0
- package/lib/module/services/SoundsService.js +171 -0
- package/lib/module/services/SoundsService.js.map +1 -0
- package/lib/module/shared/helpers/AnimationFrame.js +120 -0
- package/lib/module/shared/helpers/AnimationFrame.js.map +1 -0
- package/lib/module/shared/helpers/AnimationTracker.js +89 -0
- package/lib/module/shared/helpers/AnimationTracker.js.map +1 -0
- package/lib/module/shared/helpers/ErrorHandler.js +269 -0
- package/lib/module/shared/helpers/ErrorHandler.js.map +1 -0
- package/lib/module/shared/helpers/GameControlButton.js +219 -0
- package/lib/module/shared/helpers/GameControlButton.js.map +1 -0
- package/lib/module/{games/balloon-blaster/components → shared/helpers}/GameOverModal.js +25 -17
- package/lib/module/shared/helpers/GameOverModal.js.map +1 -0
- package/lib/module/shared/helpers/GameSettingsModal.js +287 -0
- package/lib/module/shared/helpers/GameSettingsModal.js.map +1 -0
- package/lib/module/shared/helpers/ParticleBlast.js +133 -0
- package/lib/module/shared/helpers/ParticleBlast.js.map +1 -0
- package/lib/module/shared/helpers/ResponsiveScoreBoard.js +81 -0
- package/lib/module/shared/helpers/ResponsiveScoreBoard.js.map +1 -0
- package/lib/module/shared/helpers/index.js +12 -0
- package/lib/module/shared/helpers/index.js.map +1 -0
- package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts +2 -14
- package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
- package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts +144 -0
- package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts.map +1 -0
- package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts +1 -1
- package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts.map +1 -1
- package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts +12 -2
- package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts.map +1 -1
- package/lib/typescript/src/games/balloon-blaster/components/BalloonComponent.d.ts.map +1 -1
- package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts +1 -15
- package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts.map +1 -1
- 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 +1 -7
- package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/balloon-blaster/components/index.d.ts +0 -4
- package/lib/typescript/src/games/balloon-blaster/components/index.d.ts.map +1 -1
- package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts +4 -0
- package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts +112 -0
- package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts.map +1 -0
- package/lib/typescript/src/games/{fruit-slicer/FruitSlicerService.d.ts → fruit-ninja/FruitNinjaService.d.ts} +13 -5
- package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts.map +1 -0
- package/lib/typescript/src/games/{fruit-slicer/FruitSlicerStore.d.ts → fruit-ninja/FruitNinjaStore.d.ts} +13 -4
- package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts.map +1 -0
- package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/FruitComponent.d.ts +1 -1
- package/lib/typescript/src/games/fruit-ninja/components/FruitComponent.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts +3 -0
- package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts +3 -0
- package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-ninja/components/index.d.ts +5 -0
- package/lib/typescript/src/games/fruit-ninja/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +2 -16
- package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
- package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts +41 -0
- package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts.map +1 -0
- package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts +4 -2
- package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts.map +1 -1
- package/lib/typescript/src/games/maze-runner/components/EnhancedBallComponent.d.ts.map +1 -1
- package/lib/typescript/src/games/maze-runner/components/EnhancedGameArea.d.ts.map +1 -1
- package/lib/typescript/src/games/maze-runner/components/GameBackground.d.ts +2 -1
- package/lib/typescript/src/games/maze-runner/components/GameBackground.d.ts.map +1 -1
- package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/maze-runner/components/WallComponent.d.ts.map +1 -1
- package/lib/typescript/src/games/maze-runner/components/index.d.ts +0 -2
- package/lib/typescript/src/games/maze-runner/components/index.d.ts.map +1 -1
- package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts +5 -0
- package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -0
- package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts +45 -0
- package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts.map +1 -0
- package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts +33 -0
- package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts.map +1 -0
- package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +36 -0
- package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts.map +1 -0
- package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts +12 -0
- package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts.map +1 -0
- package/lib/typescript/src/games/popit-fidget/components/FidgetGrid.d.ts +12 -0
- package/lib/typescript/src/games/popit-fidget/components/FidgetGrid.d.ts.map +1 -0
- package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts +9 -0
- package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts +8 -0
- package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/popit-fidget/components/index.d.ts +5 -0
- package/lib/typescript/src/games/popit-fidget/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts +4 -0
- package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -0
- package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts +71 -0
- package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts.map +1 -0
- package/lib/typescript/src/games/{space-traveller/SpaceTravellerService.d.ts → space-fighter/SpaceFighterService.d.ts} +7 -4
- package/lib/typescript/src/games/space-fighter/SpaceFighterService.d.ts.map +1 -0
- package/lib/typescript/src/games/{space-traveller/SpaceTravellerStore.d.ts → space-fighter/SpaceFighterStore.d.ts} +12 -4
- package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts.map +1 -0
- package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts +8 -0
- package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts.map +1 -0
- package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts +3 -0
- package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts.map +1 -0
- package/lib/typescript/src/games/space-fighter/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts +3 -0
- package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/{space-traveller → space-fighter}/components/Spacecraft3D.d.ts +1 -1
- package/lib/typescript/src/games/space-fighter/components/Spacecraft3D.d.ts.map +1 -0
- package/lib/typescript/src/games/space-fighter/components/SpacecraftPath.d.ts.map +1 -0
- package/lib/typescript/src/games/{space-traveller → space-fighter}/components/index.d.ts +0 -4
- package/lib/typescript/src/games/space-fighter/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts +4 -0
- package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -0
- package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts +79 -0
- package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts.map +1 -0
- package/lib/typescript/src/games/whack-a-mole/WhackAMoleService.d.ts +33 -0
- package/lib/typescript/src/games/whack-a-mole/WhackAMoleService.d.ts.map +1 -0
- package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts +41 -0
- package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts.map +1 -0
- package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/{cat-popper → whack-a-mole}/components/GameGrid.d.ts +2 -2
- package/lib/typescript/src/games/whack-a-mole/components/GameGrid.d.ts.map +1 -0
- package/lib/typescript/src/games/{cat-popper → whack-a-mole}/components/GameHole.d.ts +3 -2
- package/lib/typescript/src/games/whack-a-mole/components/GameHole.d.ts.map +1 -0
- package/lib/typescript/src/games/whack-a-mole/components/MoleCharacter.d.ts +7 -0
- package/lib/typescript/src/games/whack-a-mole/components/MoleCharacter.d.ts.map +1 -0
- package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/whack-a-mole/components/index.d.ts +6 -0
- package/lib/typescript/src/games/whack-a-mole/components/index.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +4 -3
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/services/GamesConstants.d.ts +61 -340
- package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -1
- package/lib/typescript/src/services/GamesService.d.ts +21 -3
- package/lib/typescript/src/services/GamesService.d.ts.map +1 -1
- package/lib/typescript/src/services/HapticsService.d.ts +16 -0
- package/lib/typescript/src/services/HapticsService.d.ts.map +1 -0
- package/lib/typescript/src/services/SoundsService.d.ts +154 -0
- package/lib/typescript/src/services/SoundsService.d.ts.map +1 -0
- package/lib/typescript/src/shared/helpers/AnimationFrame.d.ts +41 -0
- package/lib/typescript/src/shared/helpers/AnimationFrame.d.ts.map +1 -0
- package/lib/typescript/src/shared/helpers/AnimationTracker.d.ts +45 -0
- package/lib/typescript/src/shared/helpers/AnimationTracker.d.ts.map +1 -0
- package/lib/typescript/src/shared/helpers/ErrorHandler.d.ts +124 -0
- package/lib/typescript/src/shared/helpers/ErrorHandler.d.ts.map +1 -0
- package/lib/typescript/src/shared/helpers/GameControlButton.d.ts +17 -0
- package/lib/typescript/src/shared/helpers/GameControlButton.d.ts.map +1 -0
- package/lib/typescript/src/{games/cat-popper/components → shared/helpers}/GameOverModal.d.ts +5 -0
- package/lib/typescript/src/shared/helpers/GameOverModal.d.ts.map +1 -0
- package/lib/typescript/src/shared/helpers/GameSettingsModal.d.ts +9 -0
- package/lib/typescript/src/shared/helpers/GameSettingsModal.d.ts.map +1 -0
- package/lib/typescript/src/shared/helpers/ParticleBlast.d.ts +12 -0
- package/lib/typescript/src/shared/helpers/ParticleBlast.d.ts.map +1 -0
- package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts +42 -0
- package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/shared/helpers/index.d.ts +13 -0
- package/lib/typescript/src/shared/helpers/index.d.ts.map +1 -0
- package/package.json +9 -6
- package/lib/module/games/balloon-blaster/components/GameControls.js +0 -229
- package/lib/module/games/balloon-blaster/components/GameControls.js.map +0 -1
- package/lib/module/games/balloon-blaster/components/GameOverModal.js.map +0 -1
- package/lib/module/games/balloon-blaster/components/ParticleSystem.js +0 -52
- package/lib/module/games/balloon-blaster/components/ParticleSystem.js.map +0 -1
- package/lib/module/games/balloon-blaster/components/SliceTrail.js +0 -58
- package/lib/module/games/balloon-blaster/components/SliceTrail.js.map +0 -1
- package/lib/module/games/cat-popper/CatPopper.js +0 -230
- package/lib/module/games/cat-popper/CatPopper.js.map +0 -1
- package/lib/module/games/cat-popper/CatPopperService.js +0 -100
- package/lib/module/games/cat-popper/CatPopperService.js.map +0 -1
- package/lib/module/games/cat-popper/CatPopperStore.js +0 -113
- package/lib/module/games/cat-popper/CatPopperStore.js.map +0 -1
- package/lib/module/games/cat-popper/components/CatCharacter.js.map +0 -1
- package/lib/module/games/cat-popper/components/GameBackground.js.map +0 -1
- package/lib/module/games/cat-popper/components/GameControls.js +0 -230
- package/lib/module/games/cat-popper/components/GameControls.js.map +0 -1
- package/lib/module/games/cat-popper/components/GameGrid.js +0 -66
- package/lib/module/games/cat-popper/components/GameGrid.js.map +0 -1
- package/lib/module/games/cat-popper/components/GameHole.js.map +0 -1
- package/lib/module/games/cat-popper/components/GameOverModal.js +0 -131
- package/lib/module/games/cat-popper/components/GameOverModal.js.map +0 -1
- package/lib/module/games/cat-popper/components/ScoreBoard.js.map +0 -1
- package/lib/module/games/cat-popper/components/index.js.map +0 -1
- package/lib/module/games/fruit-slicer/FruitSlicer.js +0 -411
- package/lib/module/games/fruit-slicer/FruitSlicer.js.map +0 -1
- package/lib/module/games/fruit-slicer/FruitSlicerService.js.map +0 -1
- package/lib/module/games/fruit-slicer/FruitSlicerStore.js +0 -156
- package/lib/module/games/fruit-slicer/FruitSlicerStore.js.map +0 -1
- package/lib/module/games/fruit-slicer/components/FruitComponent.js.map +0 -1
- package/lib/module/games/fruit-slicer/components/GameArea.js +0 -50
- package/lib/module/games/fruit-slicer/components/GameArea.js.map +0 -1
- package/lib/module/games/fruit-slicer/components/GameBackground.js.map +0 -1
- package/lib/module/games/fruit-slicer/components/GameControls.js +0 -230
- package/lib/module/games/fruit-slicer/components/GameControls.js.map +0 -1
- package/lib/module/games/fruit-slicer/components/GameOverModal.js +0 -189
- package/lib/module/games/fruit-slicer/components/GameOverModal.js.map +0 -1
- package/lib/module/games/fruit-slicer/components/ParticleSystem.js +0 -52
- package/lib/module/games/fruit-slicer/components/ParticleSystem.js.map +0 -1
- package/lib/module/games/fruit-slicer/components/ScoreBoard.js.map +0 -1
- package/lib/module/games/fruit-slicer/components/SliceTrail.js +0 -58
- package/lib/module/games/fruit-slicer/components/SliceTrail.js.map +0 -1
- package/lib/module/games/fruit-slicer/components/index.js +0 -11
- package/lib/module/games/fruit-slicer/components/index.js.map +0 -1
- package/lib/module/games/maze-runner/components/GameControls.js +0 -129
- package/lib/module/games/maze-runner/components/GameControls.js.map +0 -1
- package/lib/module/games/maze-runner/components/GameOverModal.js +0 -134
- package/lib/module/games/maze-runner/components/GameOverModal.js.map +0 -1
- package/lib/module/games/space-traveller/SpaceTraveller.js +0 -393
- package/lib/module/games/space-traveller/SpaceTraveller.js.map +0 -1
- package/lib/module/games/space-traveller/SpaceTravellerService.js.map +0 -1
- package/lib/module/games/space-traveller/SpaceTravellerStore.js +0 -139
- package/lib/module/games/space-traveller/SpaceTravellerStore.js.map +0 -1
- package/lib/module/games/space-traveller/components/AsteroidComponent.js.map +0 -1
- package/lib/module/games/space-traveller/components/GameArea.js +0 -75
- package/lib/module/games/space-traveller/components/GameArea.js.map +0 -1
- package/lib/module/games/space-traveller/components/GameBackground.js.map +0 -1
- package/lib/module/games/space-traveller/components/GameControls.js +0 -177
- package/lib/module/games/space-traveller/components/GameControls.js.map +0 -1
- package/lib/module/games/space-traveller/components/GameOverModal.js +0 -182
- package/lib/module/games/space-traveller/components/GameOverModal.js.map +0 -1
- package/lib/module/games/space-traveller/components/ParticleComponent.js +0 -34
- package/lib/module/games/space-traveller/components/ParticleComponent.js.map +0 -1
- package/lib/module/games/space-traveller/components/ScoreBoard.js.map +0 -1
- package/lib/module/games/space-traveller/components/SettingsModal.js +0 -222
- package/lib/module/games/space-traveller/components/SettingsModal.js.map +0 -1
- package/lib/module/games/space-traveller/components/Spacecraft3D.js.map +0 -1
- package/lib/module/games/space-traveller/components/SpacecraftPath.js +0 -37
- package/lib/module/games/space-traveller/components/SpacecraftPath.js.map +0 -1
- package/lib/module/games/space-traveller/components/index.js.map +0 -1
- package/lib/module/shared/settings/GameSettings.js +0 -295
- package/lib/module/shared/settings/GameSettings.js.map +0 -1
- package/lib/module/shared/settings/SettingsService.js +0 -119
- package/lib/module/shared/settings/SettingsService.js.map +0 -1
- package/lib/typescript/src/games/balloon-blaster/components/GameControls.d.ts +0 -10
- package/lib/typescript/src/games/balloon-blaster/components/GameControls.d.ts.map +0 -1
- package/lib/typescript/src/games/balloon-blaster/components/GameOverModal.d.ts +0 -9
- package/lib/typescript/src/games/balloon-blaster/components/GameOverModal.d.ts.map +0 -1
- package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts +0 -8
- package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts.map +0 -1
- package/lib/typescript/src/games/balloon-blaster/components/SliceTrail.d.ts +0 -11
- package/lib/typescript/src/games/balloon-blaster/components/SliceTrail.d.ts.map +0 -1
- package/lib/typescript/src/games/cat-popper/CatPopper.d.ts +0 -13
- package/lib/typescript/src/games/cat-popper/CatPopper.d.ts.map +0 -1
- package/lib/typescript/src/games/cat-popper/CatPopperService.d.ts +0 -32
- package/lib/typescript/src/games/cat-popper/CatPopperService.d.ts.map +0 -1
- package/lib/typescript/src/games/cat-popper/CatPopperStore.d.ts +0 -21
- package/lib/typescript/src/games/cat-popper/CatPopperStore.d.ts.map +0 -1
- package/lib/typescript/src/games/cat-popper/components/CatCharacter.d.ts +0 -7
- package/lib/typescript/src/games/cat-popper/components/CatCharacter.d.ts.map +0 -1
- package/lib/typescript/src/games/cat-popper/components/GameBackground.d.ts.map +0 -1
- package/lib/typescript/src/games/cat-popper/components/GameControls.d.ts +0 -10
- package/lib/typescript/src/games/cat-popper/components/GameControls.d.ts.map +0 -1
- package/lib/typescript/src/games/cat-popper/components/GameGrid.d.ts.map +0 -1
- package/lib/typescript/src/games/cat-popper/components/GameHole.d.ts.map +0 -1
- package/lib/typescript/src/games/cat-popper/components/GameOverModal.d.ts.map +0 -1
- package/lib/typescript/src/games/cat-popper/components/ScoreBoard.d.ts.map +0 -1
- package/lib/typescript/src/games/cat-popper/components/index.d.ts +0 -8
- package/lib/typescript/src/games/cat-popper/components/index.d.ts.map +0 -1
- package/lib/typescript/src/games/fruit-slicer/FruitSlicer.d.ts +0 -16
- package/lib/typescript/src/games/fruit-slicer/FruitSlicer.d.ts.map +0 -1
- package/lib/typescript/src/games/fruit-slicer/FruitSlicerService.d.ts.map +0 -1
- package/lib/typescript/src/games/fruit-slicer/FruitSlicerStore.d.ts.map +0 -1
- package/lib/typescript/src/games/fruit-slicer/components/FruitComponent.d.ts.map +0 -1
- package/lib/typescript/src/games/fruit-slicer/components/GameArea.d.ts +0 -17
- package/lib/typescript/src/games/fruit-slicer/components/GameArea.d.ts.map +0 -1
- package/lib/typescript/src/games/fruit-slicer/components/GameBackground.d.ts.map +0 -1
- package/lib/typescript/src/games/fruit-slicer/components/GameControls.d.ts +0 -10
- package/lib/typescript/src/games/fruit-slicer/components/GameControls.d.ts.map +0 -1
- package/lib/typescript/src/games/fruit-slicer/components/GameOverModal.d.ts +0 -9
- package/lib/typescript/src/games/fruit-slicer/components/GameOverModal.d.ts.map +0 -1
- package/lib/typescript/src/games/fruit-slicer/components/ParticleSystem.d.ts +0 -8
- package/lib/typescript/src/games/fruit-slicer/components/ParticleSystem.d.ts.map +0 -1
- package/lib/typescript/src/games/fruit-slicer/components/ScoreBoard.d.ts +0 -9
- package/lib/typescript/src/games/fruit-slicer/components/ScoreBoard.d.ts.map +0 -1
- package/lib/typescript/src/games/fruit-slicer/components/SliceTrail.d.ts +0 -11
- package/lib/typescript/src/games/fruit-slicer/components/SliceTrail.d.ts.map +0 -1
- package/lib/typescript/src/games/fruit-slicer/components/index.d.ts +0 -9
- package/lib/typescript/src/games/fruit-slicer/components/index.d.ts.map +0 -1
- package/lib/typescript/src/games/maze-runner/components/GameControls.d.ts +0 -10
- package/lib/typescript/src/games/maze-runner/components/GameControls.d.ts.map +0 -1
- package/lib/typescript/src/games/maze-runner/components/GameOverModal.d.ts +0 -11
- package/lib/typescript/src/games/maze-runner/components/GameOverModal.d.ts.map +0 -1
- package/lib/typescript/src/games/space-traveller/SpaceTraveller.d.ts +0 -17
- package/lib/typescript/src/games/space-traveller/SpaceTraveller.d.ts.map +0 -1
- package/lib/typescript/src/games/space-traveller/SpaceTravellerService.d.ts.map +0 -1
- package/lib/typescript/src/games/space-traveller/SpaceTravellerStore.d.ts.map +0 -1
- package/lib/typescript/src/games/space-traveller/components/AsteroidComponent.d.ts +0 -9
- package/lib/typescript/src/games/space-traveller/components/AsteroidComponent.d.ts.map +0 -1
- package/lib/typescript/src/games/space-traveller/components/GameArea.d.ts +0 -17
- package/lib/typescript/src/games/space-traveller/components/GameArea.d.ts.map +0 -1
- package/lib/typescript/src/games/space-traveller/components/GameBackground.d.ts.map +0 -1
- package/lib/typescript/src/games/space-traveller/components/GameControls.d.ts +0 -10
- package/lib/typescript/src/games/space-traveller/components/GameControls.d.ts.map +0 -1
- package/lib/typescript/src/games/space-traveller/components/GameOverModal.d.ts +0 -9
- package/lib/typescript/src/games/space-traveller/components/GameOverModal.d.ts.map +0 -1
- package/lib/typescript/src/games/space-traveller/components/ParticleComponent.d.ts +0 -8
- package/lib/typescript/src/games/space-traveller/components/ParticleComponent.d.ts.map +0 -1
- package/lib/typescript/src/games/space-traveller/components/ScoreBoard.d.ts +0 -8
- package/lib/typescript/src/games/space-traveller/components/ScoreBoard.d.ts.map +0 -1
- package/lib/typescript/src/games/space-traveller/components/SettingsModal.d.ts +0 -9
- package/lib/typescript/src/games/space-traveller/components/SettingsModal.d.ts.map +0 -1
- package/lib/typescript/src/games/space-traveller/components/Spacecraft3D.d.ts.map +0 -1
- package/lib/typescript/src/games/space-traveller/components/SpacecraftPath.d.ts.map +0 -1
- package/lib/typescript/src/games/space-traveller/components/index.d.ts.map +0 -1
- package/lib/typescript/src/shared/settings/GameSettings.d.ts +0 -36
- package/lib/typescript/src/shared/settings/GameSettings.d.ts.map +0 -1
- package/lib/typescript/src/shared/settings/SettingsService.d.ts +0 -32
- package/lib/typescript/src/shared/settings/SettingsService.d.ts.map +0 -1
- /package/lib/typescript/src/games/{cat-popper → fruit-ninja}/components/GameBackground.d.ts +0 -0
- /package/lib/typescript/src/games/{fruit-slicer → space-fighter}/components/GameBackground.d.ts +0 -0
- /package/lib/typescript/src/games/{space-traveller → space-fighter}/components/SpacecraftPath.d.ts +0 -0
- /package/lib/typescript/src/games/{space-traveller → whack-a-mole}/components/GameBackground.d.ts +0 -0
- /package/lib/typescript/src/games/{cat-popper → whack-a-mole}/components/ScoreBoard.d.ts +0 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { create } from 'zustand';
|
|
4
|
+
import { subscribeWithSelector } from 'zustand/middleware';
|
|
5
|
+
import { GAME_CONFIG } from "./WhackAMoleService.js";
|
|
6
|
+
import { immerMiddleware } from "../../services/GamesService.js";
|
|
7
|
+
const createInitialHoles = (gridSize = GAME_CONFIG.GRID_SIZE) => {
|
|
8
|
+
const totalHoles = gridSize * gridSize;
|
|
9
|
+
return Array.from({
|
|
10
|
+
length: totalHoles
|
|
11
|
+
}, (_, i) => ({
|
|
12
|
+
id: i,
|
|
13
|
+
isActive: false,
|
|
14
|
+
position: {
|
|
15
|
+
x: (i % gridSize - 1) * (GAME_CONFIG.HOLE_SIZE + 20),
|
|
16
|
+
y: Math.floor(i / gridSize - 1) * (GAME_CONFIG.HOLE_SIZE + 20),
|
|
17
|
+
z: 0
|
|
18
|
+
}
|
|
19
|
+
}));
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
// Optimized store with selective subscriptions for low-end devices
|
|
23
|
+
export const useWhackAMoleStore = create()(subscribeWithSelector(immerMiddleware((set, get) => ({
|
|
24
|
+
// Initial state
|
|
25
|
+
score: 0,
|
|
26
|
+
timeLeft: GAME_CONFIG.GAME_DURATION,
|
|
27
|
+
// Fixed duration regardless of difficulty
|
|
28
|
+
isPlaying: false,
|
|
29
|
+
gameOver: false,
|
|
30
|
+
holes: createInitialHoles(),
|
|
31
|
+
// Actions
|
|
32
|
+
startGame: (_gameDuration, gridSize) => {
|
|
33
|
+
// Always use fixed duration regardless of difficulty or passed duration
|
|
34
|
+
const duration = GAME_CONFIG.GAME_DURATION;
|
|
35
|
+
const grid = gridSize || GAME_CONFIG.GRID_SIZE;
|
|
36
|
+
set(draft => {
|
|
37
|
+
draft.score = 0;
|
|
38
|
+
draft.timeLeft = duration;
|
|
39
|
+
draft.isPlaying = true;
|
|
40
|
+
draft.gameOver = false;
|
|
41
|
+
draft.holes = createInitialHoles(grid);
|
|
42
|
+
});
|
|
43
|
+
},
|
|
44
|
+
stopGame: () => {
|
|
45
|
+
set(draft => {
|
|
46
|
+
draft.score = 0;
|
|
47
|
+
draft.timeLeft = GAME_CONFIG.GAME_DURATION; // Use constant for consistency
|
|
48
|
+
draft.isPlaying = false;
|
|
49
|
+
draft.gameOver = false;
|
|
50
|
+
});
|
|
51
|
+
},
|
|
52
|
+
resetGame: () => {
|
|
53
|
+
set(draft => {
|
|
54
|
+
draft.score = 0;
|
|
55
|
+
draft.timeLeft = GAME_CONFIG.GAME_DURATION; // Use constant for consistency
|
|
56
|
+
draft.isPlaying = false;
|
|
57
|
+
draft.gameOver = false;
|
|
58
|
+
draft.holes = createInitialHoles();
|
|
59
|
+
});
|
|
60
|
+
},
|
|
61
|
+
whackMole: (holeId, points = 1) => {
|
|
62
|
+
const {
|
|
63
|
+
holes,
|
|
64
|
+
isPlaying
|
|
65
|
+
} = get();
|
|
66
|
+
if (!isPlaying) return;
|
|
67
|
+
|
|
68
|
+
// Optimized: Use direct array access instead of find for better performance
|
|
69
|
+
if (holeId < 0 || holeId >= holes.length || !holes[holeId] || !holes[holeId].isActive) return;
|
|
70
|
+
set(draft => {
|
|
71
|
+
draft.score = draft.score + points;
|
|
72
|
+
// Optimized: Direct array access instead of find
|
|
73
|
+
if (draft.holes[holeId]) {
|
|
74
|
+
draft.holes[holeId].isActive = false;
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
},
|
|
78
|
+
updateScore: points => {
|
|
79
|
+
set(draft => {
|
|
80
|
+
draft.score = draft.score + points;
|
|
81
|
+
});
|
|
82
|
+
},
|
|
83
|
+
decrementTime: () => {
|
|
84
|
+
const currentState = get();
|
|
85
|
+
if (currentState.timeLeft <= 1) {
|
|
86
|
+
// Batch final state update to prevent multiple re-renders
|
|
87
|
+
set(draft => {
|
|
88
|
+
draft.timeLeft = 0;
|
|
89
|
+
draft.isPlaying = false;
|
|
90
|
+
draft.gameOver = true;
|
|
91
|
+
// Deactivate all holes when game ends
|
|
92
|
+
draft.holes.forEach(hole => {
|
|
93
|
+
hole.isActive = false;
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
} else {
|
|
97
|
+
// Only update time to minimize re-renders
|
|
98
|
+
set(draft => {
|
|
99
|
+
draft.timeLeft = currentState.timeLeft - 1;
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
setHoles: holes => {
|
|
104
|
+
set(draft => {
|
|
105
|
+
draft.holes = holes;
|
|
106
|
+
});
|
|
107
|
+
},
|
|
108
|
+
activateHole: holeId => {
|
|
109
|
+
// Optimized hole activation with direct array access
|
|
110
|
+
const state = get();
|
|
111
|
+
if (holeId >= 0 && holeId < state.holes.length && !state.holes[holeId].isActive) {
|
|
112
|
+
set(draft => {
|
|
113
|
+
if (draft.holes[holeId]) {
|
|
114
|
+
draft.holes[holeId].isActive = true;
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
deactivateHole: holeId => {
|
|
120
|
+
// Optimized hole deactivation with direct array access
|
|
121
|
+
const state = get();
|
|
122
|
+
if (holeId >= 0 && holeId < state.holes.length && state.holes[holeId].isActive) {
|
|
123
|
+
set(draft => {
|
|
124
|
+
if (draft.holes[holeId]) {
|
|
125
|
+
draft.holes[holeId].isActive = false;
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
// Batch operations for better performance
|
|
131
|
+
batchUpdateHoles: updates => {
|
|
132
|
+
const state = get();
|
|
133
|
+
const hasChanges = updates.some(update => update.holeId >= 0 && update.holeId < state.holes.length && state.holes[update.holeId].isActive !== update.isActive);
|
|
134
|
+
if (hasChanges) {
|
|
135
|
+
set(draft => {
|
|
136
|
+
updates.forEach(({
|
|
137
|
+
holeId,
|
|
138
|
+
isActive
|
|
139
|
+
}) => {
|
|
140
|
+
if (holeId >= 0 && holeId < draft.holes.length) {
|
|
141
|
+
if (draft.holes[holeId]) {
|
|
142
|
+
draft.holes[holeId].isActive = isActive;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}))));
|
|
150
|
+
|
|
151
|
+
// Optimized selectors for low-end devices - prevent unnecessary re-renders
|
|
152
|
+
export const useGameState = () => useWhackAMoleStore(state => ({
|
|
153
|
+
isPlaying: state.isPlaying,
|
|
154
|
+
gameOver: state.gameOver
|
|
155
|
+
}));
|
|
156
|
+
export const useScore = () => useWhackAMoleStore(state => state.score);
|
|
157
|
+
export const useTimeLeft = () => useWhackAMoleStore(state => state.timeLeft);
|
|
158
|
+
|
|
159
|
+
// Memoized active holes selector for better performance
|
|
160
|
+
export const useActiveHoles = () => useWhackAMoleStore(state => {
|
|
161
|
+
const activeHoles = [];
|
|
162
|
+
for (let i = 0; i < state.holes.length; i++) {
|
|
163
|
+
if (state.holes[i] && state.holes[i].isActive) {
|
|
164
|
+
activeHoles.push(state.holes[i]);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return activeHoles;
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
// Optimized hole selector with direct array access
|
|
171
|
+
export const useHoleById = holeId => useWhackAMoleStore(state => holeId >= 0 && holeId < state.holes.length ? state.holes[holeId] : undefined);
|
|
172
|
+
//# sourceMappingURL=WhackAMoleStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["create","subscribeWithSelector","GAME_CONFIG","immerMiddleware","createInitialHoles","gridSize","GRID_SIZE","totalHoles","Array","from","length","_","i","id","isActive","position","x","HOLE_SIZE","y","Math","floor","z","useWhackAMoleStore","set","get","score","timeLeft","GAME_DURATION","isPlaying","gameOver","holes","startGame","_gameDuration","duration","grid","draft","stopGame","resetGame","whackMole","holeId","points","updateScore","decrementTime","currentState","forEach","hole","setHoles","activateHole","state","deactivateHole","batchUpdateHoles","updates","hasChanges","some","update","useGameState","useScore","useTimeLeft","useActiveHoles","activeHoles","push","useHoleById","undefined"],"sourceRoot":"../../../../src","sources":["games/whack-a-mole/WhackAMoleStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,66 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React
|
|
4
|
-
import { Dimensions } from 'react-native';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { View, Dimensions } from 'react-native';
|
|
5
5
|
import { Canvas, LinearGradient, Rect, Circle, Path, Skia, vec, Group, Shadow } from '@shopify/react-native-skia';
|
|
6
|
-
import { useSharedValue, useAnimatedStyle, withRepeat, withTiming, withSequence, interpolate, Extrapolation } from 'react-native-reanimated';
|
|
7
|
-
import Animated from 'react-native-reanimated';
|
|
8
6
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
7
|
const {
|
|
10
8
|
width,
|
|
11
9
|
height
|
|
12
10
|
} = Dimensions.get('window');
|
|
13
|
-
export const GameBackground = ({
|
|
11
|
+
export const GameBackground = /*#__PURE__*/React.memo(({
|
|
14
12
|
children
|
|
15
13
|
}) => {
|
|
16
|
-
//
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const sunGlow = useSharedValue(0);
|
|
20
|
-
const sunRotation = useSharedValue(0);
|
|
21
|
-
useEffect(() => {
|
|
22
|
-
// Grass swaying animation
|
|
23
|
-
grassWave.value = withRepeat(withSequence(withTiming(1, {
|
|
24
|
-
duration: 3000
|
|
25
|
-
}), withTiming(-1, {
|
|
26
|
-
duration: 3000
|
|
27
|
-
})), -1, false);
|
|
28
|
-
|
|
29
|
-
// Cloud floating animation
|
|
30
|
-
cloudFloat.value = withRepeat(withTiming(1, {
|
|
31
|
-
duration: 8000
|
|
32
|
-
}), -1, false);
|
|
33
|
-
|
|
34
|
-
// Sun glow pulsing
|
|
35
|
-
sunGlow.value = withRepeat(withSequence(withTiming(1, {
|
|
36
|
-
duration: 2000
|
|
37
|
-
}), withTiming(0.7, {
|
|
38
|
-
duration: 2000
|
|
39
|
-
})), -1, false);
|
|
40
|
-
|
|
41
|
-
// Sun rotation animation (slow continuous rotation)
|
|
42
|
-
sunRotation.value = withRepeat(withTiming(360, {
|
|
43
|
-
duration: 30000
|
|
44
|
-
}), -1, false);
|
|
45
|
-
}, []);
|
|
46
|
-
const animatedBackgroundStyle = useAnimatedStyle(() => {
|
|
47
|
-
return {
|
|
48
|
-
transform: [{
|
|
49
|
-
translateY: interpolate(grassWave.value, [-1, 1], [-2, 2], Extrapolation.CLAMP)
|
|
50
|
-
}]
|
|
51
|
-
};
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
// Create grass path
|
|
14
|
+
// Create grass path - reduced to just button height area (120px from bottom)
|
|
15
|
+
const buttonAreaHeight = 250; // Height for button area
|
|
16
|
+
const grassStartY = height - buttonAreaHeight;
|
|
55
17
|
const createGrassPath = (startX, segments = 8) => {
|
|
56
18
|
const path = Skia.Path.Make();
|
|
57
19
|
const segmentWidth = width / segments;
|
|
58
|
-
path.moveTo(startX,
|
|
20
|
+
path.moveTo(startX, grassStartY);
|
|
59
21
|
for (let i = 0; i < segments; i++) {
|
|
60
22
|
const x = startX + i * segmentWidth;
|
|
61
|
-
const y =
|
|
23
|
+
const y = grassStartY + Math.sin(i * 0.5) * 8; // Reduced wave amplitude
|
|
62
24
|
const controlX = x + segmentWidth / 2;
|
|
63
|
-
const controlY = y + Math.cos(i * 0.3) *
|
|
25
|
+
const controlY = y + Math.cos(i * 0.3) * 6; // Reduced wave amplitude
|
|
26
|
+
|
|
64
27
|
path.quadTo(controlX, controlY, x + segmentWidth, y);
|
|
65
28
|
}
|
|
66
29
|
path.lineTo(width, height);
|
|
@@ -69,10 +32,10 @@ export const GameBackground = ({
|
|
|
69
32
|
return path;
|
|
70
33
|
};
|
|
71
34
|
const grassPath = createGrassPath(0);
|
|
72
|
-
return /*#__PURE__*/_jsxs(
|
|
73
|
-
style:
|
|
35
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
36
|
+
style: {
|
|
74
37
|
flex: 1
|
|
75
|
-
},
|
|
38
|
+
},
|
|
76
39
|
children: [/*#__PURE__*/_jsxs(Canvas, {
|
|
77
40
|
style: {
|
|
78
41
|
position: 'absolute',
|
|
@@ -83,24 +46,13 @@ export const GameBackground = ({
|
|
|
83
46
|
x: 0,
|
|
84
47
|
y: 0,
|
|
85
48
|
width: width,
|
|
86
|
-
height:
|
|
49
|
+
height: grassStartY,
|
|
87
50
|
children: /*#__PURE__*/_jsx(LinearGradient, {
|
|
88
51
|
start: vec(0, 0),
|
|
89
|
-
end: vec(0,
|
|
52
|
+
end: vec(0, grassStartY),
|
|
90
53
|
colors: ['#87CEEB', '#98D8E8', '#B0E0E6']
|
|
91
54
|
})
|
|
92
55
|
}), /*#__PURE__*/_jsxs(Group, {
|
|
93
|
-
transform: [{
|
|
94
|
-
translateX: width * 0.8
|
|
95
|
-
}, {
|
|
96
|
-
translateY: height * 0.15
|
|
97
|
-
}, {
|
|
98
|
-
rotate: sunRotation.value * Math.PI / 180
|
|
99
|
-
}, {
|
|
100
|
-
translateX: -width * 0.8
|
|
101
|
-
}, {
|
|
102
|
-
translateY: -height * 0.15
|
|
103
|
-
}],
|
|
104
56
|
children: [/*#__PURE__*/_jsxs(Circle, {
|
|
105
57
|
cx: width * 0.8,
|
|
106
58
|
cy: height * 0.15,
|
|
@@ -112,7 +64,7 @@ export const GameBackground = ({
|
|
|
112
64
|
}), /*#__PURE__*/_jsx(Shadow, {
|
|
113
65
|
dx: 0,
|
|
114
66
|
dy: 0,
|
|
115
|
-
blur:
|
|
67
|
+
blur: 30,
|
|
116
68
|
color: "#FFD700"
|
|
117
69
|
})]
|
|
118
70
|
}), /*#__PURE__*/_jsx(Circle, {
|
|
@@ -145,7 +97,7 @@ export const GameBackground = ({
|
|
|
145
97
|
style: "stroke",
|
|
146
98
|
strokeWidth: rayWidth,
|
|
147
99
|
color: "#FFD700",
|
|
148
|
-
opacity:
|
|
100
|
+
opacity: 0.7
|
|
149
101
|
}, index);
|
|
150
102
|
}), /*#__PURE__*/_jsx(Circle, {
|
|
151
103
|
cx: width * 0.8,
|
|
@@ -160,9 +112,6 @@ export const GameBackground = ({
|
|
|
160
112
|
})]
|
|
161
113
|
}), /*#__PURE__*/_jsxs(Group, {
|
|
162
114
|
children: [/*#__PURE__*/_jsxs(Group, {
|
|
163
|
-
transform: [{
|
|
164
|
-
translateX: interpolate(cloudFloat.value, [0, 1], [-4, 4], Extrapolation.CLAMP)
|
|
165
|
-
}],
|
|
166
115
|
children: [/*#__PURE__*/_jsx(Circle, {
|
|
167
116
|
cx: width * 0.12,
|
|
168
117
|
cy: height * 0.24,
|
|
@@ -255,9 +204,6 @@ export const GameBackground = ({
|
|
|
255
204
|
opacity: 0.25
|
|
256
205
|
})]
|
|
257
206
|
}), /*#__PURE__*/_jsxs(Group, {
|
|
258
|
-
transform: [{
|
|
259
|
-
translateX: interpolate(cloudFloat.value, [0, 1], [3, -3], Extrapolation.CLAMP)
|
|
260
|
-
}],
|
|
261
207
|
children: [/*#__PURE__*/_jsx(Circle, {
|
|
262
208
|
cx: width * 0.62,
|
|
263
209
|
cy: height * 0.27,
|
|
@@ -326,9 +272,6 @@ export const GameBackground = ({
|
|
|
326
272
|
opacity: 0.30
|
|
327
273
|
})]
|
|
328
274
|
}), /*#__PURE__*/_jsxs(Group, {
|
|
329
|
-
transform: [{
|
|
330
|
-
translateX: interpolate(cloudFloat.value, [0, 1], [1.5, -1.5], Extrapolation.CLAMP)
|
|
331
|
-
}],
|
|
332
275
|
children: [/*#__PURE__*/_jsx(Circle, {
|
|
333
276
|
cx: width * 0.84,
|
|
334
277
|
cy: height * 0.19,
|
|
@@ -379,9 +322,6 @@ export const GameBackground = ({
|
|
|
379
322
|
opacity: 0.20
|
|
380
323
|
})]
|
|
381
324
|
}), /*#__PURE__*/_jsxs(Group, {
|
|
382
|
-
transform: [{
|
|
383
|
-
translateX: interpolate(cloudFloat.value, [0, 1], [-2, 2], Extrapolation.CLAMP)
|
|
384
|
-
}],
|
|
385
325
|
children: [/*#__PURE__*/_jsx(Circle, {
|
|
386
326
|
cx: width * 0.45,
|
|
387
327
|
cy: height * 0.15,
|
|
@@ -422,19 +362,19 @@ export const GameBackground = ({
|
|
|
422
362
|
})]
|
|
423
363
|
}), /*#__PURE__*/_jsx(Rect, {
|
|
424
364
|
x: 0,
|
|
425
|
-
y:
|
|
365
|
+
y: grassStartY,
|
|
426
366
|
width: width,
|
|
427
|
-
height:
|
|
367
|
+
height: buttonAreaHeight,
|
|
428
368
|
children: /*#__PURE__*/_jsx(LinearGradient, {
|
|
429
|
-
start: vec(0,
|
|
369
|
+
start: vec(0, grassStartY),
|
|
430
370
|
end: vec(0, height),
|
|
431
371
|
colors: ['#8B4513', '#A0522D', '#654321']
|
|
432
372
|
})
|
|
433
373
|
}), /*#__PURE__*/_jsxs(Path, {
|
|
434
374
|
path: grassPath,
|
|
435
375
|
children: [/*#__PURE__*/_jsx(LinearGradient, {
|
|
436
|
-
start: vec(0,
|
|
437
|
-
end: vec(0,
|
|
376
|
+
start: vec(0, grassStartY - 20),
|
|
377
|
+
end: vec(0, grassStartY + 20),
|
|
438
378
|
colors: ['#32CD32', '#228B22', '#006400']
|
|
439
379
|
}), /*#__PURE__*/_jsx(Shadow, {
|
|
440
380
|
dx: 0,
|
|
@@ -447,13 +387,13 @@ export const GameBackground = ({
|
|
|
447
387
|
}, (_, i) => {
|
|
448
388
|
const x = width / 50 * i + Math.random() * 15;
|
|
449
389
|
const grassHeight = 12 + Math.random() * 18;
|
|
450
|
-
const swayAmount =
|
|
390
|
+
const swayAmount = 0; // No animation
|
|
451
391
|
const grassType = Math.random();
|
|
452
392
|
const bladePath = Skia.Path.Make();
|
|
453
|
-
bladePath.moveTo(x,
|
|
393
|
+
bladePath.moveTo(x, grassStartY);
|
|
454
394
|
if (grassType < 0.4) {
|
|
455
395
|
// Tall thin grass with slight curve
|
|
456
|
-
bladePath.quadTo(x + swayAmount + 1,
|
|
396
|
+
bladePath.quadTo(x + swayAmount + 1, grassStartY - grassHeight * 0.6, x + swayAmount + Math.random() * 2 - 1, grassStartY - grassHeight);
|
|
457
397
|
return /*#__PURE__*/_jsx(Path, {
|
|
458
398
|
path: bladePath,
|
|
459
399
|
style: "stroke",
|
|
@@ -463,7 +403,7 @@ export const GameBackground = ({
|
|
|
463
403
|
}, `grass-${i}`);
|
|
464
404
|
} else if (grassType < 0.7) {
|
|
465
405
|
// Medium curved grass
|
|
466
|
-
bladePath.quadTo(x + swayAmount + 2,
|
|
406
|
+
bladePath.quadTo(x + swayAmount + 2, grassStartY - grassHeight * 0.4, x + swayAmount + 3, grassStartY - grassHeight);
|
|
467
407
|
return /*#__PURE__*/_jsx(Path, {
|
|
468
408
|
path: bladePath,
|
|
469
409
|
style: "stroke",
|
|
@@ -474,7 +414,7 @@ export const GameBackground = ({
|
|
|
474
414
|
} else {
|
|
475
415
|
// Short wide grass with multiple segments
|
|
476
416
|
const midHeight = grassHeight * 0.5;
|
|
477
|
-
bladePath.quadTo(x + swayAmount + 1,
|
|
417
|
+
bladePath.quadTo(x + swayAmount + 1, grassStartY - midHeight, x + swayAmount + 2, grassStartY - grassHeight);
|
|
478
418
|
return /*#__PURE__*/_jsxs(Group, {
|
|
479
419
|
children: [/*#__PURE__*/_jsx(Path, {
|
|
480
420
|
path: bladePath,
|
|
@@ -484,7 +424,7 @@ export const GameBackground = ({
|
|
|
484
424
|
opacity: 0.6 + Math.random() * 0.4
|
|
485
425
|
}), Math.random() < 0.3 && /*#__PURE__*/_jsx(Circle, {
|
|
486
426
|
cx: x + swayAmount + 2,
|
|
487
|
-
cy:
|
|
427
|
+
cy: grassStartY - grassHeight,
|
|
488
428
|
r: 0.8,
|
|
489
429
|
color: "#22c55e",
|
|
490
430
|
opacity: 0.8
|
|
@@ -495,7 +435,7 @@ export const GameBackground = ({
|
|
|
495
435
|
length: 30
|
|
496
436
|
}, (_, i) => {
|
|
497
437
|
const x = Math.random() * width;
|
|
498
|
-
const y =
|
|
438
|
+
const y = grassStartY - 10 + Math.random() * 20; // Position around grass line
|
|
499
439
|
const grassClusterHeight = 8 + Math.random() * 6;
|
|
500
440
|
const clusterPath = Skia.Path.Make();
|
|
501
441
|
clusterPath.moveTo(x, y);
|
|
@@ -515,7 +455,7 @@ export const GameBackground = ({
|
|
|
515
455
|
length: 15
|
|
516
456
|
}, (_, i) => {
|
|
517
457
|
const x = Math.random() * width;
|
|
518
|
-
const y =
|
|
458
|
+
const y = grassStartY + 20 + Math.random() * (buttonAreaHeight - 40); // Keep within button area
|
|
519
459
|
const size = 2 + Math.random() * 3;
|
|
520
460
|
return /*#__PURE__*/_jsx(Circle, {
|
|
521
461
|
cx: x,
|
|
@@ -527,5 +467,5 @@ export const GameBackground = ({
|
|
|
527
467
|
})]
|
|
528
468
|
}), children]
|
|
529
469
|
});
|
|
530
|
-
};
|
|
470
|
+
});
|
|
531
471
|
//# sourceMappingURL=GameBackground.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","Dimensions","Canvas","LinearGradient","Rect","Circle","Path","Skia","vec","Group","Shadow","jsx","_jsx","jsxs","_jsxs","width","height","get","GameBackground","memo","children","buttonAreaHeight","grassStartY","createGrassPath","startX","segments","path","Make","segmentWidth","moveTo","i","x","y","Math","sin","controlX","controlY","cos","quadTo","lineTo","close","grassPath","style","flex","position","start","end","colors","cx","cy","r","dx","dy","blur","color","Array","from","length","_","index","angle","radian","PI","isLongRay","rayLength","rayWidth","startDistance","startY","endX","endY","rayPath","strokeWidth","opacity","random","grassHeight","swayAmount","grassType","bladePath","midHeight","grassClusterHeight","clusterPath","size"],"sourceRoot":"../../../../../src","sources":["games/whack-a-mole/components/GameBackground.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useMemo } from 'react';
|
|
4
|
+
import { View, StyleSheet, Dimensions } from 'react-native';
|
|
5
|
+
import { GAME_CONFIG } from "../WhackAMoleService.js";
|
|
6
|
+
import { GameHole } from "./GameHole.js";
|
|
7
|
+
|
|
8
|
+
// Highly optimized GameHole that only re-renders when its specific hole changes
|
|
9
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
+
const MemoizedGameHole = /*#__PURE__*/React.memo(GameHole, (prevProps, nextProps) => {
|
|
11
|
+
// Only re-render if this specific hole's state changes
|
|
12
|
+
return prevProps.hole.id === nextProps.hole.id && prevProps.hole.isActive === nextProps.hole.isActive && prevProps.moleAnimation === nextProps.moleAnimation && prevProps.hitAnimation === nextProps.hitAnimation && prevProps.onPress === nextProps.onPress && prevProps.holeSize === nextProps.holeSize;
|
|
13
|
+
});
|
|
14
|
+
export const GameGrid = /*#__PURE__*/React.memo(({
|
|
15
|
+
holes,
|
|
16
|
+
moleAnimations,
|
|
17
|
+
hitAnimations,
|
|
18
|
+
onHolePress,
|
|
19
|
+
gridSize = 3
|
|
20
|
+
}) => {
|
|
21
|
+
// Calculate responsive dimensions with maximum width for tablets
|
|
22
|
+
const responsiveDimensions = useMemo(() => {
|
|
23
|
+
const {
|
|
24
|
+
width: screenWidth
|
|
25
|
+
} = Dimensions.get('window');
|
|
26
|
+
|
|
27
|
+
// Maximum container width for tablets (600px max)
|
|
28
|
+
const maxContainerWidth = Math.min(screenWidth * 0.9, 600);
|
|
29
|
+
|
|
30
|
+
// Calculate hole size based on grid size and container width
|
|
31
|
+
const availableWidth = maxContainerWidth - gridSize * 8; // Account for gaps
|
|
32
|
+
const maxHoleSize = availableWidth / gridSize;
|
|
33
|
+
|
|
34
|
+
// Use smaller of calculated size or original size, with minimum of 60px
|
|
35
|
+
const holeSize = Math.max(Math.min(maxHoleSize, GAME_CONFIG.HOLE_SIZE), 60);
|
|
36
|
+
return {
|
|
37
|
+
containerWidth: maxContainerWidth,
|
|
38
|
+
holeSize,
|
|
39
|
+
gridWidth: gridSize * (holeSize + 8) // Account for gaps
|
|
40
|
+
};
|
|
41
|
+
}, [gridSize]);
|
|
42
|
+
|
|
43
|
+
// Memoize style calculations to prevent re-computation on every render
|
|
44
|
+
const gridStyle = useMemo(() => ({
|
|
45
|
+
width: responsiveDimensions.gridWidth,
|
|
46
|
+
maxWidth: responsiveDimensions.containerWidth
|
|
47
|
+
}), [responsiveDimensions]);
|
|
48
|
+
const paddingStyle = useMemo(() => gridSize === 4 ? styles.smallPadding : styles.largePadding, [gridSize]);
|
|
49
|
+
const gapStyle = useMemo(() => gridSize === 4 ? styles.smallGap : styles.largeGap, [gridSize]);
|
|
50
|
+
return /*#__PURE__*/_jsx(View, {
|
|
51
|
+
style: [styles.gameArea, paddingStyle],
|
|
52
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
53
|
+
style: [styles.gameGrid, gapStyle, gridStyle],
|
|
54
|
+
children: holes.map((hole, index) => {
|
|
55
|
+
const moleAnimation = moleAnimations[index];
|
|
56
|
+
const hitAnimation = hitAnimations[index];
|
|
57
|
+
if (!moleAnimation || !hitAnimation) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
return /*#__PURE__*/_jsx(MemoizedGameHole, {
|
|
61
|
+
hole: hole,
|
|
62
|
+
moleAnimation: moleAnimation,
|
|
63
|
+
hitAnimation: hitAnimation,
|
|
64
|
+
onPress: onHolePress,
|
|
65
|
+
holeSize: responsiveDimensions.holeSize
|
|
66
|
+
}, hole.id);
|
|
67
|
+
})
|
|
68
|
+
})
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
const styles = StyleSheet.create({
|
|
72
|
+
gameArea: {
|
|
73
|
+
flex: 1,
|
|
74
|
+
justifyContent: 'center',
|
|
75
|
+
alignItems: 'center'
|
|
76
|
+
},
|
|
77
|
+
smallPadding: {
|
|
78
|
+
paddingHorizontal: 16,
|
|
79
|
+
paddingVertical: 20
|
|
80
|
+
},
|
|
81
|
+
largePadding: {
|
|
82
|
+
paddingVertical: 20
|
|
83
|
+
},
|
|
84
|
+
gameGrid: {
|
|
85
|
+
flexDirection: 'row',
|
|
86
|
+
flexWrap: 'wrap',
|
|
87
|
+
justifyContent: 'center',
|
|
88
|
+
alignItems: 'center'
|
|
89
|
+
},
|
|
90
|
+
smallGap: {
|
|
91
|
+
gap: 4
|
|
92
|
+
},
|
|
93
|
+
largeGap: {
|
|
94
|
+
gap: 8
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
//# sourceMappingURL=GameGrid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useMemo","View","StyleSheet","Dimensions","GAME_CONFIG","GameHole","jsx","_jsx","MemoizedGameHole","memo","prevProps","nextProps","hole","id","isActive","moleAnimation","hitAnimation","onPress","holeSize","GameGrid","holes","moleAnimations","hitAnimations","onHolePress","gridSize","responsiveDimensions","width","screenWidth","get","maxContainerWidth","Math","min","availableWidth","maxHoleSize","max","HOLE_SIZE","containerWidth","gridWidth","gridStyle","maxWidth","paddingStyle","styles","smallPadding","largePadding","gapStyle","smallGap","largeGap","style","gameArea","children","gameGrid","map","index","create","flex","justifyContent","alignItems","paddingHorizontal","paddingVertical","flexDirection","flexWrap","gap"],"sourceRoot":"../../../../../src","sources":["games/whack-a-mole/components/GameGrid.tsx"],"mappings":"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","ignoreList":[]}
|