react-native-games 0.3.0 → 0.4.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 +45 -32
- package/lib/module/games/balloon-blaster/BalloonBlaster.js +160 -75
- package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
- package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +183 -0
- package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js.map +1 -0
- package/lib/module/games/balloon-blaster/BalloonBlasterService.js +152 -55
- package/lib/module/games/balloon-blaster/BalloonBlasterService.js.map +1 -1
- package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +108 -92
- package/lib/module/games/balloon-blaster/BalloonBlasterStore.js.map +1 -1
- package/lib/module/games/balloon-blaster/components/BalloonComponent.js +48 -65
- package/lib/module/games/balloon-blaster/components/BalloonComponent.js.map +1 -1
- package/lib/module/games/balloon-blaster/components/GameArea.js +7 -2
- 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/ParticleSystem.js +9 -6
- package/lib/module/games/balloon-blaster/components/ParticleSystem.js.map +1 -1
- package/lib/module/games/balloon-blaster/components/ScoreBoard.js +8 -16
- package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/balloon-blaster/components/index.js +0 -1
- package/lib/module/games/balloon-blaster/components/index.js.map +1 -1
- package/lib/module/games/{fruit-slicer/FruitSlicer.js → fruit-ninja/FruitNinja.js} +68 -54
- package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -0
- package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +151 -0
- package/lib/module/games/fruit-ninja/FruitNinjaConstants.js.map +1 -0
- package/lib/module/games/{fruit-slicer/FruitSlicerService.js → fruit-ninja/FruitNinjaService.js} +13 -12
- package/lib/module/games/fruit-ninja/FruitNinjaService.js.map +1 -0
- package/lib/module/games/fruit-ninja/FruitNinjaStore.js +166 -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.map +1 -0
- package/lib/module/games/{fruit-slicer → fruit-ninja}/components/GameBackground.js +198 -169
- package/lib/module/games/fruit-ninja/components/GameBackground.js.map +1 -0
- package/lib/module/games/fruit-ninja/components/GameOverModal.js.map +1 -0
- package/lib/module/games/fruit-ninja/components/ParticleSystem.js.map +1 -0
- package/lib/module/games/{fruit-slicer → fruit-ninja}/components/ScoreBoard.js +8 -17
- package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/{fruit-slicer → fruit-ninja}/components/SliceTrail.js +1 -1
- package/lib/module/games/fruit-ninja/components/SliceTrail.js.map +1 -0
- package/lib/module/games/{fruit-slicer → fruit-ninja}/components/index.js +0 -1
- package/lib/module/games/fruit-ninja/components/index.js.map +1 -0
- package/lib/module/games/maze-runner/MazeRunner.js +109 -91
- package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
- package/lib/module/games/maze-runner/MazeRunnerConstants.js +105 -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/EnhancedGameArea.js +5 -9
- 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 +8 -23
- package/lib/module/games/maze-runner/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/maze-runner/components/index.js +0 -1
- package/lib/module/games/maze-runner/components/index.js.map +1 -1
- package/lib/module/games/popit-fidget/PopitFidget.js +293 -0
- package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -0
- package/lib/module/games/popit-fidget/PopitFidgetConstants.js +116 -0
- package/lib/module/games/popit-fidget/PopitFidgetConstants.js.map +1 -0
- package/lib/module/games/popit-fidget/PopitFidgetService.js +191 -0
- package/lib/module/games/popit-fidget/PopitFidgetService.js.map +1 -0
- package/lib/module/games/popit-fidget/PopitFidgetStore.js +190 -0
- package/lib/module/games/popit-fidget/PopitFidgetStore.js.map +1 -0
- package/lib/module/games/popit-fidget/components/BubbleComponent.js +196 -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 +174 -0
- package/lib/module/games/popit-fidget/components/GameBackground.js.map +1 -0
- package/lib/module/games/popit-fidget/components/GameOverModal.js +132 -0
- package/lib/module/games/popit-fidget/components/GameOverModal.js.map +1 -0
- package/lib/module/games/popit-fidget/components/ParticleSystem.js +89 -0
- package/lib/module/games/popit-fidget/components/ParticleSystem.js.map +1 -0
- package/lib/module/games/popit-fidget/components/ScoreBoard.js +68 -0
- package/lib/module/games/popit-fidget/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/popit-fidget/components/index.js +9 -0
- package/lib/module/games/popit-fidget/components/index.js.map +1 -0
- package/lib/module/games/{space-traveller/SpaceTraveller.js → space-fighter/SpaceFighter.js} +94 -70
- package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -0
- package/lib/module/games/space-fighter/SpaceFighterConstants.js +110 -0
- package/lib/module/games/space-fighter/SpaceFighterConstants.js.map +1 -0
- package/lib/module/games/{space-traveller/SpaceTravellerService.js → space-fighter/SpaceFighterService.js} +18 -10
- package/lib/module/games/space-fighter/SpaceFighterService.js.map +1 -0
- package/lib/module/games/space-fighter/SpaceFighterStore.js +143 -0
- package/lib/module/games/space-fighter/SpaceFighterStore.js.map +1 -0
- package/lib/module/games/space-fighter/components/AsteroidComponent.js.map +1 -0
- package/lib/module/games/space-fighter/components/GameArea.js.map +1 -0
- package/lib/module/games/space-fighter/components/GameBackground.js.map +1 -0
- package/lib/module/games/space-fighter/components/GameOverModal.js.map +1 -0
- package/lib/module/games/space-fighter/components/ParticleComponent.js.map +1 -0
- package/lib/module/games/{space-traveller → space-fighter}/components/ScoreBoard.js +11 -19
- package/lib/module/games/space-fighter/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/space-fighter/components/SettingsModal.js.map +1 -0
- package/lib/module/games/space-fighter/components/Spacecraft3D.js.map +1 -0
- package/lib/module/games/{space-traveller → space-fighter}/components/SpacecraftPath.js +1 -1
- package/lib/module/games/space-fighter/components/SpacecraftPath.js.map +1 -0
- package/lib/module/games/{space-traveller → space-fighter}/components/index.js +0 -1
- package/lib/module/games/space-fighter/components/index.js.map +1 -0
- package/lib/module/games/whack-a-mole/WhackAMole.js +273 -0
- package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -0
- package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +117 -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 +159 -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 → whack-a-mole}/components/GameOverModal.js +2 -2
- package/lib/module/games/whack-a-mole/components/GameOverModal.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 +8 -16
- 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 -2
- 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 +36 -506
- package/lib/module/services/GamesConstants.js.map +1 -1
- package/lib/module/services/GamesService.js +22 -14
- 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/{games/balloon-blaster/components/GameControls.js → shared/helpers/GameControlButton.js} +39 -58
- package/lib/module/shared/helpers/GameControlButton.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 +5 -0
- package/lib/module/shared/helpers/index.js.map +1 -0
- package/lib/module/shared/settings/SettingsService.js +18 -12
- package/lib/module/shared/settings/SettingsService.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 +143 -0
- package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts.map +1 -0
- package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts +3 -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.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/ParticleSystem.d.ts.map +1 -1
- 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 -1
- package/lib/typescript/src/games/balloon-blaster/components/index.d.ts.map +1 -1
- package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts +16 -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} +4 -4
- 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} +12 -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-slicer → fruit-ninja}/components/GameArea.d.ts +1 -1
- 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/GameOverModal.d.ts.map +1 -0
- package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/ParticleSystem.d.ts +1 -1
- package/lib/typescript/src/games/fruit-ninja/components/ParticleSystem.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-ninja/components/SliceTrail.d.ts.map +1 -0
- package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/index.d.ts +0 -1
- package/lib/typescript/src/games/fruit-ninja/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +1 -9
- 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/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/index.d.ts +0 -1
- package/lib/typescript/src/games/maze-runner/components/index.d.ts.map +1 -1
- package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts +11 -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 +54 -0
- package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts.map +1 -0
- package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +40 -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/GameOverModal.d.ts +9 -0
- package/lib/typescript/src/games/popit-fidget/components/GameOverModal.d.ts.map +1 -0
- package/lib/typescript/src/games/popit-fidget/components/ParticleSystem.d.ts +9 -0
- package/lib/typescript/src/games/popit-fidget/components/ParticleSystem.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 +7 -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 +9 -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-traveller → space-fighter}/components/AsteroidComponent.d.ts +1 -1
- package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts.map +1 -0
- package/lib/typescript/src/games/{space-traveller → space-fighter}/components/GameArea.d.ts +1 -1
- 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/GameOverModal.d.ts.map +1 -0
- package/lib/typescript/src/games/{space-traveller → space-fighter}/components/ParticleComponent.d.ts +1 -1
- package/lib/typescript/src/games/space-fighter/components/ParticleComponent.d.ts.map +1 -0
- package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/space-fighter/components/SettingsModal.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 -1
- package/lib/typescript/src/games/space-fighter/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/{cat-popper/CatPopper.d.ts → whack-a-mole/WhackAMole.d.ts} +4 -4
- 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/{fruit-slicer → whack-a-mole}/components/GameOverModal.d.ts.map +1 -1
- 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/{cat-popper → whack-a-mole}/components/index.d.ts +1 -2
- 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 +30 -318
- package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -1
- package/lib/typescript/src/services/GamesService.d.ts +1 -0
- 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/GameControlButton.d.ts +17 -0
- package/lib/typescript/src/shared/helpers/GameControlButton.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 +4 -0
- package/lib/typescript/src/shared/helpers/index.d.ts.map +1 -0
- package/lib/typescript/src/shared/settings/SettingsService.d.ts +2 -1
- package/lib/typescript/src/shared/settings/SettingsService.d.ts.map +1 -1
- package/package.json +9 -6
- package/lib/module/games/balloon-blaster/components/GameControls.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.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.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.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.map +0 -1
- 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.map +0 -1
- 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/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.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.map +0 -1
- 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.map +0 -1
- package/lib/module/games/space-traveller/components/Spacecraft3D.js.map +0 -1
- 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/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/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.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.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/ParticleSystem.d.ts.map +0 -1
- 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.map +0 -1
- 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/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.map +0 -1
- 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.map +0 -1
- 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.map +0 -1
- 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/module/games/{fruit-slicer → fruit-ninja}/components/GameArea.js +0 -0
- /package/lib/module/games/{fruit-slicer → fruit-ninja}/components/GameOverModal.js +0 -0
- /package/lib/module/games/{fruit-slicer → fruit-ninja}/components/ParticleSystem.js +0 -0
- /package/lib/module/games/{space-traveller → space-fighter}/components/AsteroidComponent.js +0 -0
- /package/lib/module/games/{space-traveller → space-fighter}/components/GameArea.js +0 -0
- /package/lib/module/games/{space-traveller → space-fighter}/components/GameBackground.js +0 -0
- /package/lib/module/games/{space-traveller → space-fighter}/components/GameOverModal.js +0 -0
- /package/lib/module/games/{space-traveller → space-fighter}/components/ParticleComponent.js +0 -0
- /package/lib/module/games/{space-traveller → space-fighter}/components/SettingsModal.js +0 -0
- /package/lib/module/games/{space-traveller → space-fighter}/components/Spacecraft3D.js +0 -0
- /package/lib/typescript/src/games/{cat-popper → fruit-ninja}/components/GameBackground.d.ts +0 -0
- /package/lib/typescript/src/games/{cat-popper → fruit-ninja}/components/GameOverModal.d.ts +0 -0
- /package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/ScoreBoard.d.ts +0 -0
- /package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/SliceTrail.d.ts +0 -0
- /package/lib/typescript/src/games/{fruit-slicer → space-fighter}/components/GameBackground.d.ts +0 -0
- /package/lib/typescript/src/games/{fruit-slicer → space-fighter}/components/GameOverModal.d.ts +0 -0
- /package/lib/typescript/src/games/{cat-popper → space-fighter}/components/ScoreBoard.d.ts +0 -0
- /package/lib/typescript/src/games/{space-traveller → space-fighter}/components/SettingsModal.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/{space-traveller → whack-a-mole}/components/GameOverModal.d.ts +0 -0
- /package/lib/typescript/src/games/{space-traveller → whack-a-mole}/components/ScoreBoard.d.ts +0 -0
package/README.md
CHANGED
|
@@ -6,11 +6,12 @@
|
|
|
6
6
|
|
|
7
7
|
| Game | Description | Features |
|
|
8
8
|
|------|-------------|----------|
|
|
9
|
-
| **🐱
|
|
10
|
-
|
|
|
11
|
-
| **🍎 Fruit
|
|
12
|
-
| **🧩 Maze Runner** | Navigate through
|
|
13
|
-
| **🚀 Space
|
|
9
|
+
| **🐱 Whack A Mole** | Whack cute cats popping from holes - fast reflexes needed! | Multiple difficulty levels, customizable grid sizes, haptic feedback |
|
|
10
|
+
| **🫧 Popit Fidget** | Pop satisfying bubbles in this relaxing fidget toy game | Relaxing gameplay, colorful bubbles, different shapes |
|
|
11
|
+
| **🍎 Fruit Ninja** | Slice flying fruits with finger swipes - avoid the bombs! | Physics-based slicing, particle effects, combo system |
|
|
12
|
+
| **🧩 Maze Runner** | Navigate ball through mazes using tilt and physics controls | Dynamic maze generation, physics controls, multiple difficulties |
|
|
13
|
+
| **🚀 Space Fighter** | Pilot spaceship through asteroid fields in endless space | 3D-style graphics, progressive difficulty, space physics |
|
|
14
|
+
| **🎈 Balloon Blaster** | Pop rising balloons before they escape - quick taps win! | Physics-based gameplay, particle effects, combo system |
|
|
14
15
|
|
|
15
16
|
## 📦 Installation
|
|
16
17
|
|
|
@@ -25,17 +26,7 @@ yarn add react-native-games
|
|
|
25
26
|
This library requires the following peer dependencies to be installed in your project:
|
|
26
27
|
|
|
27
28
|
```sh
|
|
28
|
-
|
|
29
|
-
npm install @shopify/react-native-skia
|
|
30
|
-
|
|
31
|
-
# Reanimated for smooth animations
|
|
32
|
-
npm install react-native-reanimated
|
|
33
|
-
|
|
34
|
-
# Gesture Handler for touch interactions
|
|
35
|
-
npm install react-native-gesture-handler
|
|
36
|
-
|
|
37
|
-
# Worklets for performance (used by Reanimated)
|
|
38
|
-
npm install react-native-worklets
|
|
29
|
+
npm install @shopify/react-native-skia react-native-reanimated react-native-gesture-handler react-native-worklets expo-speech expo-haptics
|
|
39
30
|
```
|
|
40
31
|
|
|
41
32
|
### Platform Setup
|
|
@@ -45,6 +36,8 @@ Follow the installation guides for each peer dependency:
|
|
|
45
36
|
- **[@shopify/react-native-skia](https://shopify.github.io/react-native-skia/docs/getting-started/installation)** - Graphics rendering
|
|
46
37
|
- **[react-native-reanimated](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/getting-started)** - Animations
|
|
47
38
|
- **[react-native-gesture-handler](https://docs.swmansion.com/react-native-gesture-handler/docs/fundamentals/installation)** - Gestures
|
|
39
|
+
- **[expo-speech](https://docs.expo.dev/versions/latest/sdk/speech/)** - Text-to-speech functionality
|
|
40
|
+
- **[expo-haptics](https://docs.expo.dev/versions/latest/sdk/haptics/)** - Haptic feedback
|
|
48
41
|
|
|
49
42
|
## 🚀 Usage
|
|
50
43
|
|
|
@@ -53,24 +46,25 @@ Follow the installation guides for each peer dependency:
|
|
|
53
46
|
```tsx
|
|
54
47
|
import React, { useState } from 'react';
|
|
55
48
|
import { View, StyleSheet } from 'react-native';
|
|
56
|
-
import {
|
|
49
|
+
import { WhackAMole, PopitFidget, FruitNinja, MazeRunner, SpaceFighter, BalloonBlaster } from 'react-native-games';
|
|
57
50
|
|
|
58
51
|
export default function GameScreen() {
|
|
59
52
|
const [showSettings, setShowSettings] = useState(false);
|
|
60
53
|
|
|
61
54
|
return (
|
|
62
55
|
<View style={styles.container}>
|
|
63
|
-
{/*
|
|
64
|
-
<
|
|
56
|
+
{/* Whack A Mole Game - Classic whack-a-mole with cats */}
|
|
57
|
+
<WhackAMole
|
|
65
58
|
showSettingsModal={showSettings}
|
|
66
59
|
onToggleSettingsModal={() => setShowSettings(!showSettings)}
|
|
67
60
|
/>
|
|
68
61
|
|
|
69
62
|
{/* Or choose any other game */}
|
|
70
|
-
{/* <
|
|
71
|
-
{/* <
|
|
63
|
+
{/* <PopitFidget /> */}
|
|
64
|
+
{/* <FruitNinja /> */}
|
|
72
65
|
{/* <MazeRunner /> */}
|
|
73
|
-
{/* <
|
|
66
|
+
{/* <SpaceFighter /> */}
|
|
67
|
+
{/* <BalloonBlaster /> */}
|
|
74
68
|
</View>
|
|
75
69
|
);
|
|
76
70
|
}
|
|
@@ -85,9 +79,9 @@ const styles = StyleSheet.create({
|
|
|
85
79
|
|
|
86
80
|
### Game-Specific Props & Default Settings
|
|
87
81
|
|
|
88
|
-
####
|
|
82
|
+
#### Whack A Mole
|
|
89
83
|
```tsx
|
|
90
|
-
<
|
|
84
|
+
<WhackAMole
|
|
91
85
|
showSettingsModal={boolean} // Control settings modal visibility
|
|
92
86
|
onToggleSettingsModal={() => void} // Settings modal toggle callback
|
|
93
87
|
/>
|
|
@@ -105,9 +99,28 @@ const styles = StyleSheet.create({
|
|
|
105
99
|
// Grid sizes: easy/medium 3x3, hard 4x4
|
|
106
100
|
```
|
|
107
101
|
|
|
108
|
-
####
|
|
102
|
+
#### Popit Fidget
|
|
109
103
|
```tsx
|
|
110
|
-
<
|
|
104
|
+
<PopitFidget
|
|
105
|
+
showSettingsModal={boolean} // Control settings modal visibility
|
|
106
|
+
onToggleSettingsModal={() => void} // Settings modal toggle callback
|
|
107
|
+
/>
|
|
108
|
+
|
|
109
|
+
// Default Settings:
|
|
110
|
+
// {
|
|
111
|
+
// difficulty: 'medium', // Balanced challenge
|
|
112
|
+
// soundEnabled: true, // Audio feedback enabled
|
|
113
|
+
// hapticEnabled: true, // Haptic feedback enabled
|
|
114
|
+
// gameDuration: 120 // Auto-set based on difficulty (Easy: 60s, Medium: 120s, Hard: 180s)
|
|
115
|
+
// }
|
|
116
|
+
// Available: difficulty ['easy','medium','hard']
|
|
117
|
+
// Relaxing bubble popping with satisfying sound effects
|
|
118
|
+
// Different bubble shapes and colors for variety
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
#### Fruit Ninja
|
|
122
|
+
```tsx
|
|
123
|
+
<FruitNinja
|
|
111
124
|
showSettingsModal={boolean} // Control settings modal visibility
|
|
112
125
|
onToggleSettingsModal={() => void} // Settings modal toggle callback
|
|
113
126
|
/>
|
|
@@ -124,9 +137,9 @@ const styles = StyleSheet.create({
|
|
|
124
137
|
// Spawn intervals and speeds adjust automatically with difficulty
|
|
125
138
|
```
|
|
126
139
|
|
|
127
|
-
####
|
|
140
|
+
#### Space Fighter
|
|
128
141
|
```tsx
|
|
129
|
-
<
|
|
142
|
+
<SpaceFighter
|
|
130
143
|
showSettingsModal={boolean} // Control settings modal visibility
|
|
131
144
|
onToggleSettingsModal={() => void} // Settings modal toggle callback
|
|
132
145
|
/>
|
|
@@ -163,9 +176,9 @@ const styles = StyleSheet.create({
|
|
|
163
176
|
// Procedurally generated mazes with intelligent pathfinding
|
|
164
177
|
```
|
|
165
178
|
|
|
166
|
-
####
|
|
179
|
+
#### Balloon Blaster
|
|
167
180
|
```tsx
|
|
168
|
-
<
|
|
181
|
+
<BalloonBlaster
|
|
169
182
|
showSettingsModal={boolean} // Control settings modal visibility
|
|
170
183
|
onToggleSettingsModal={() => void} // Settings modal toggle callback
|
|
171
184
|
/>
|
|
@@ -261,8 +274,8 @@ See the complete [LICENSE](LICENSE) file for detailed terms and definitions.
|
|
|
261
274
|
## 📞 Support
|
|
262
275
|
|
|
263
276
|
- 📧 **Email**: niranjan.devasani@gmail.com
|
|
264
|
-
- 🐛 **Issues**: [GitHub Issues](https://github.com/ursnj/
|
|
265
|
-
-
|
|
277
|
+
- 🐛 **Issues**: [GitHub Issues](https://github.com/ursnj/nayan-ui/issues)
|
|
278
|
+
- 🌐 **Website**: [https://www.nayanui.com/games](https://www.nayanui.com/games)
|
|
266
279
|
|
|
267
280
|
---
|
|
268
281
|
|
|
@@ -1,27 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { useEffect, useRef } from 'react';
|
|
3
|
+
import React, { useEffect, useRef, useCallback } from 'react';
|
|
4
4
|
import { View, StyleSheet, Modal } from 'react-native';
|
|
5
5
|
import { runOnJS } from 'react-native-reanimated';
|
|
6
6
|
import { Gesture, GestureDetector, GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
7
|
-
import
|
|
8
|
-
import
|
|
7
|
+
import { playSound, GAME_SOUNDS } from "../../services/SoundsService.js";
|
|
8
|
+
import { playHaptic, HapticType } from "../../services/HapticsService.js";
|
|
9
9
|
import { useBalloonBlasterStore } from "./BalloonBlasterStore.js";
|
|
10
10
|
import { createBalloonBlasterService, GAME_CONFIG } from "./BalloonBlasterService.js";
|
|
11
|
-
import { ScoreBoard, GameArea,
|
|
11
|
+
import { ScoreBoard, GameArea, GameOverModal, GameBackground } from "./components/index.js";
|
|
12
|
+
import { GameControlButton } from "../../shared/helpers/index.js";
|
|
12
13
|
// Define game-specific types and constants locally
|
|
13
14
|
|
|
14
15
|
const DEFAULT_BALLOON_BLASTER_SETTINGS = {
|
|
15
|
-
gameDuration:
|
|
16
|
+
gameDuration: 60,
|
|
17
|
+
// Fixed 60 seconds for all games
|
|
16
18
|
difficulty: 'medium',
|
|
17
19
|
soundEnabled: true,
|
|
18
20
|
hapticEnabled: true
|
|
19
21
|
};
|
|
20
22
|
const getDifficultySpawnInterval = difficulty => {
|
|
23
|
+
// Reduced spawn intervals for immediate balloon visibility and better gameplay
|
|
21
24
|
const intervals = {
|
|
22
|
-
easy:
|
|
23
|
-
medium:
|
|
24
|
-
hard:
|
|
25
|
+
easy: 800,
|
|
26
|
+
medium: 600,
|
|
27
|
+
hard: 400
|
|
25
28
|
};
|
|
26
29
|
return intervals[difficulty];
|
|
27
30
|
};
|
|
@@ -66,6 +69,7 @@ export const BalloonBlaster = ({
|
|
|
66
69
|
gameOver,
|
|
67
70
|
lives,
|
|
68
71
|
balloons,
|
|
72
|
+
particles,
|
|
69
73
|
slicePath,
|
|
70
74
|
isSlicing,
|
|
71
75
|
startGame,
|
|
@@ -76,6 +80,7 @@ export const BalloonBlaster = ({
|
|
|
76
80
|
addBalloon,
|
|
77
81
|
removeBalloon,
|
|
78
82
|
updateBalloon,
|
|
83
|
+
setParticles,
|
|
79
84
|
setSlicePath,
|
|
80
85
|
setIsSlicing,
|
|
81
86
|
resetCombo,
|
|
@@ -93,78 +98,107 @@ export const BalloonBlaster = ({
|
|
|
93
98
|
// Slice path tracking
|
|
94
99
|
const currentSlicePath = useRef([]);
|
|
95
100
|
|
|
96
|
-
// Helper functions for gesture handling
|
|
97
|
-
const checkBalloonIntersections = slicePath => {
|
|
101
|
+
// Helper functions for gesture handling - memoized to prevent unnecessary re-renders
|
|
102
|
+
const checkBalloonIntersections = useCallback(slicePath => {
|
|
98
103
|
const currentBalloons = useBalloonBlasterStore.getState().balloons;
|
|
99
104
|
currentBalloons.forEach(balloon => {
|
|
100
105
|
if (!balloon.isPopped && gameService.checkBalloonPop(balloon, slicePath)) {
|
|
101
|
-
handleBalloonPop
|
|
106
|
+
// Call handleBalloonPop directly to avoid circular dependency
|
|
107
|
+
const balloonId = balloon.id;
|
|
108
|
+
// Double-check game state to prevent race conditions
|
|
109
|
+
const currentState = useBalloonBlasterStore.getState();
|
|
110
|
+
if (!currentState.isPlaying || currentState.gameOver) return;
|
|
111
|
+
const targetBalloon = currentBalloons.find(b => b.id === balloonId);
|
|
112
|
+
if (!targetBalloon || targetBalloon.isPopped) return;
|
|
113
|
+
|
|
114
|
+
// Handle different balloon types BEFORE marking as popped
|
|
115
|
+
if (targetBalloon.isBomb) {
|
|
116
|
+
// Bomb hit - lose life and end combo
|
|
117
|
+
playSound(GAME_SOUNDS.BALLOON_BLASTER.BOMB, settings.soundEnabled);
|
|
118
|
+
playHaptic(HapticType.HEAVY, settings.hapticEnabled);
|
|
119
|
+
|
|
120
|
+
// Check current state again before losing life
|
|
121
|
+
const stateBeforeLoss = useBalloonBlasterStore.getState();
|
|
122
|
+
if (stateBeforeLoss.lives > 0 && stateBeforeLoss.isPlaying && !stateBeforeLoss.gameOver) {
|
|
123
|
+
loseLife();
|
|
124
|
+
resetCombo();
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// Create explosion particles
|
|
128
|
+
gameService.createPopParticles(targetBalloon);
|
|
129
|
+
|
|
130
|
+
// Mark bomb as popped after processing
|
|
131
|
+
updateBalloon(balloonId, {
|
|
132
|
+
isPopped: true
|
|
133
|
+
});
|
|
134
|
+
} else {
|
|
135
|
+
// Handle different balloon types with simplified mechanics
|
|
136
|
+
playSound(GAME_SOUNDS.BALLOON_BLASTER.POP, settings.soundEnabled);
|
|
137
|
+
playHaptic(HapticType.LIGHT, settings.hapticEnabled);
|
|
138
|
+
if (targetBalloon.isBonus) {
|
|
139
|
+
// Star balloon - add a life instead of points
|
|
140
|
+
addLife();
|
|
141
|
+
playSound(GAME_SOUNDS.BALLOON_BLASTER.POP, settings.soundEnabled);
|
|
142
|
+
// Mark star as popped after processing
|
|
143
|
+
updateBalloon(balloonId, {
|
|
144
|
+
isPopped: true
|
|
145
|
+
});
|
|
146
|
+
} else {
|
|
147
|
+
// Regular balloon - add 10 points (popBalloon handles marking)
|
|
148
|
+
popBalloon(balloonId);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Create pop particles
|
|
152
|
+
gameService.createPopParticles(targetBalloon);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// Remove balloon after animation
|
|
156
|
+
setTimeout(() => {
|
|
157
|
+
removeBalloon(balloonId);
|
|
158
|
+
balloonAnimations.delete(balloonId);
|
|
159
|
+
}, 500);
|
|
102
160
|
}
|
|
103
161
|
});
|
|
104
|
-
};
|
|
105
|
-
const clearSlicePath = () => {
|
|
162
|
+
}, [gameService, loseLife, resetCombo, updateBalloon, addLife, popBalloon, removeBalloon, balloonAnimations]);
|
|
163
|
+
const clearSlicePath = useCallback(() => {
|
|
106
164
|
setTimeout(() => {
|
|
107
165
|
currentSlicePath.current = [];
|
|
108
166
|
setSlicePath([]);
|
|
109
167
|
}, 200);
|
|
110
|
-
};
|
|
168
|
+
}, [setSlicePath]);
|
|
111
169
|
|
|
112
|
-
//
|
|
113
|
-
const
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
pitch: 1.5,
|
|
117
|
-
rate: 2.5,
|
|
118
|
-
volume: 0.6
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
// Always provide haptic feedback for better game feel
|
|
122
|
-
Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light);
|
|
123
|
-
};
|
|
124
|
-
const playBombSound = () => {
|
|
125
|
-
if (settings.soundEnabled) {
|
|
126
|
-
Speech.speak('Boom!', {
|
|
127
|
-
pitch: 0.8,
|
|
128
|
-
rate: 1.5,
|
|
129
|
-
volume: 0.8
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
// Always provide haptic feedback for bombs
|
|
133
|
-
Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Heavy);
|
|
134
|
-
};
|
|
170
|
+
// Balloon spawning - memoized to prevent unnecessary re-renders
|
|
171
|
+
const spawnBalloon = useCallback(balloon => {
|
|
172
|
+
addBalloon(balloon);
|
|
173
|
+
}, [addBalloon]);
|
|
135
174
|
|
|
136
|
-
// Game control functions
|
|
137
|
-
const handleStartGame = () => {
|
|
138
|
-
startGame(
|
|
175
|
+
// Game control functions - memoized to prevent unnecessary re-renders
|
|
176
|
+
const handleStartGame = useCallback(() => {
|
|
177
|
+
startGame(); // Store uses fixed 60s duration internally
|
|
139
178
|
gameService.resetAnimations();
|
|
140
179
|
gameService.startGameTimer(decrementTime);
|
|
141
180
|
gameService.startBalloonSpawning(spawnBalloon, getDifficultySpawnInterval(settings.difficulty));
|
|
142
181
|
gameService.startPhysicsLoop(updateBalloon, removeBalloon, () => useBalloonBlasterStore.getState().balloons);
|
|
143
|
-
};
|
|
144
|
-
const handleStopGame = () => {
|
|
182
|
+
}, [startGame, gameService, decrementTime, spawnBalloon, settings.difficulty, updateBalloon, removeBalloon]);
|
|
183
|
+
const handleStopGame = useCallback(() => {
|
|
145
184
|
stopGame();
|
|
146
185
|
gameService.cleanup();
|
|
147
186
|
gameService.resetAnimations();
|
|
148
187
|
currentSlicePath.current = [];
|
|
149
188
|
setSlicePath([]);
|
|
150
189
|
setIsSlicing(false);
|
|
151
|
-
};
|
|
152
|
-
const handleResetGame = () => {
|
|
190
|
+
}, [stopGame, gameService, setSlicePath, setIsSlicing]);
|
|
191
|
+
const handleResetGame = useCallback(() => {
|
|
153
192
|
gameService.cleanup();
|
|
154
193
|
resetGame();
|
|
155
194
|
gameService.resetAnimations();
|
|
156
195
|
currentSlicePath.current = [];
|
|
157
196
|
setSlicePath([]);
|
|
158
197
|
setIsSlicing(false);
|
|
159
|
-
};
|
|
198
|
+
}, [gameService, resetGame, setSlicePath, setIsSlicing]);
|
|
160
199
|
|
|
161
|
-
// Balloon
|
|
162
|
-
const
|
|
163
|
-
addBalloon(balloon);
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
// Balloon popping logic
|
|
167
|
-
const handleBalloonPop = balloonId => {
|
|
200
|
+
// Balloon popping logic - memoized to prevent unnecessary re-renders
|
|
201
|
+
const handleBalloonPop = useCallback(balloonId => {
|
|
168
202
|
// Double-check game state to prevent race conditions
|
|
169
203
|
const currentState = useBalloonBlasterStore.getState();
|
|
170
204
|
if (!currentState.isPlaying || currentState.gameOver) return;
|
|
@@ -174,7 +208,8 @@ export const BalloonBlaster = ({
|
|
|
174
208
|
// Handle different balloon types BEFORE marking as popped
|
|
175
209
|
if (balloon.isBomb) {
|
|
176
210
|
// Bomb hit - lose life and end combo
|
|
177
|
-
|
|
211
|
+
playSound(GAME_SOUNDS.BALLOON_BLASTER.BOMB, settings.soundEnabled);
|
|
212
|
+
playHaptic(HapticType.HEAVY, settings.hapticEnabled);
|
|
178
213
|
|
|
179
214
|
// Check current state again before losing life
|
|
180
215
|
const stateBeforeLoss = useBalloonBlasterStore.getState();
|
|
@@ -192,11 +227,12 @@ export const BalloonBlaster = ({
|
|
|
192
227
|
});
|
|
193
228
|
} else {
|
|
194
229
|
// Handle different balloon types with simplified mechanics
|
|
195
|
-
|
|
230
|
+
playSound(GAME_SOUNDS.BALLOON_BLASTER.POP, settings.soundEnabled);
|
|
231
|
+
playHaptic(HapticType.LIGHT, settings.hapticEnabled);
|
|
196
232
|
if (balloon.isBonus) {
|
|
197
233
|
// Star balloon - add a life instead of points
|
|
198
234
|
addLife();
|
|
199
|
-
|
|
235
|
+
playSound(GAME_SOUNDS.BALLOON_BLASTER.POP, settings.soundEnabled);
|
|
200
236
|
// Mark star as popped after processing
|
|
201
237
|
updateBalloon(balloonId, {
|
|
202
238
|
isPopped: true
|
|
@@ -217,10 +253,10 @@ export const BalloonBlaster = ({
|
|
|
217
253
|
removeBalloon(balloonId);
|
|
218
254
|
balloonAnimations.delete(balloonId);
|
|
219
255
|
}, 500);
|
|
220
|
-
};
|
|
256
|
+
}, [balloons, loseLife, resetCombo, gameService, updateBalloon, addLife, popBalloon, removeBalloon, balloonAnimations, settings.soundEnabled, settings.hapticEnabled]);
|
|
221
257
|
|
|
222
|
-
// Gesture handling for slicing
|
|
223
|
-
const handleGestureStart = event => {
|
|
258
|
+
// Gesture handling for slicing - memoized to prevent unnecessary re-renders
|
|
259
|
+
const handleGestureStart = useCallback(event => {
|
|
224
260
|
if (!isPlaying) return;
|
|
225
261
|
currentSlicePath.current = [{
|
|
226
262
|
x: event.x,
|
|
@@ -233,9 +269,9 @@ export const BalloonBlaster = ({
|
|
|
233
269
|
}]);
|
|
234
270
|
|
|
235
271
|
// Light haptic feedback on slice start
|
|
236
|
-
|
|
237
|
-
};
|
|
238
|
-
const handleGestureUpdate = event => {
|
|
272
|
+
playHaptic(HapticType.LIGHT, settings.hapticEnabled);
|
|
273
|
+
}, [isPlaying, setIsSlicing, setSlicePath, settings.hapticEnabled]);
|
|
274
|
+
const handleGestureUpdate = useCallback(event => {
|
|
239
275
|
if (!isPlaying) return;
|
|
240
276
|
const newPoint = {
|
|
241
277
|
x: event.x,
|
|
@@ -251,12 +287,12 @@ export const BalloonBlaster = ({
|
|
|
251
287
|
|
|
252
288
|
// Check for balloon intersections
|
|
253
289
|
checkBalloonIntersections(currentSlicePath.current);
|
|
254
|
-
};
|
|
255
|
-
const handleGestureEnd = () => {
|
|
290
|
+
}, [isPlaying, setSlicePath, checkBalloonIntersections]);
|
|
291
|
+
const handleGestureEnd = useCallback(() => {
|
|
256
292
|
if (!isPlaying) return;
|
|
257
293
|
setIsSlicing(false);
|
|
258
294
|
clearSlicePath();
|
|
259
|
-
};
|
|
295
|
+
}, [isPlaying, setIsSlicing, clearSlicePath]);
|
|
260
296
|
const panGesture = Gesture.Pan().onStart(event => {
|
|
261
297
|
runOnJS(handleGestureStart)(event);
|
|
262
298
|
}).onUpdate(event => {
|
|
@@ -285,6 +321,25 @@ export const BalloonBlaster = ({
|
|
|
285
321
|
};
|
|
286
322
|
}, []);
|
|
287
323
|
|
|
324
|
+
// Sync particles from service to store for React re-rendering
|
|
325
|
+
useEffect(() => {
|
|
326
|
+
if (isPlaying && !gameOver) {
|
|
327
|
+
const syncParticles = () => {
|
|
328
|
+
const currentParticles = gameService.getParticles();
|
|
329
|
+
// Force re-render by creating new array reference
|
|
330
|
+
setParticles([...currentParticles]);
|
|
331
|
+
requestAnimationFrame(syncParticles);
|
|
332
|
+
};
|
|
333
|
+
const animationId = requestAnimationFrame(syncParticles);
|
|
334
|
+
return () => {
|
|
335
|
+
cancelAnimationFrame(animationId);
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
// Return empty cleanup function when not playing
|
|
340
|
+
return () => {};
|
|
341
|
+
}, [isPlaying, gameOver, setParticles]);
|
|
342
|
+
|
|
288
343
|
// Cleanup when game ends (gameOver becomes true)
|
|
289
344
|
useEffect(() => {
|
|
290
345
|
if (gameOver) {
|
|
@@ -345,25 +400,39 @@ export const BalloonBlaster = ({
|
|
|
345
400
|
children: /*#__PURE__*/_jsx(View, {
|
|
346
401
|
style: styles.container,
|
|
347
402
|
children: /*#__PURE__*/_jsxs(GameBackground, {
|
|
348
|
-
children: [/*#__PURE__*/_jsx(
|
|
349
|
-
score: score,
|
|
350
|
-
timeLeft: timeLeft,
|
|
351
|
-
lives: lives
|
|
352
|
-
}), /*#__PURE__*/_jsx(GestureDetector, {
|
|
403
|
+
children: [/*#__PURE__*/_jsx(GestureDetector, {
|
|
353
404
|
gesture: panGesture,
|
|
354
405
|
children: /*#__PURE__*/_jsx(GameArea, {
|
|
355
406
|
balloons: balloons,
|
|
356
407
|
balloonAnimations: balloonAnimations,
|
|
357
408
|
slicePath: slicePath,
|
|
358
409
|
isSlicing: isSlicing,
|
|
359
|
-
particles:
|
|
410
|
+
particles: particles,
|
|
360
411
|
onBalloonPop: handleBalloonPop
|
|
361
412
|
})
|
|
362
|
-
}), /*#__PURE__*/_jsx(
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
413
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
414
|
+
style: styles.scoreboardContainer,
|
|
415
|
+
children: /*#__PURE__*/_jsx(ScoreBoard, {
|
|
416
|
+
score: score,
|
|
417
|
+
timeLeft: timeLeft,
|
|
418
|
+
lives: lives
|
|
419
|
+
})
|
|
420
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
421
|
+
style: styles.controlButtonContainer,
|
|
422
|
+
children: /*#__PURE__*/_jsx(GameControlButton, {
|
|
423
|
+
isPlaying: isPlaying,
|
|
424
|
+
gameOver: gameOver,
|
|
425
|
+
onStartGame: handleStartGame,
|
|
426
|
+
onStopGame: handleStopGame,
|
|
427
|
+
startButtonText: "START POPPING",
|
|
428
|
+
stopButtonText: "STOP GAME",
|
|
429
|
+
startButtonSubtext: "Pop balloons to score!",
|
|
430
|
+
stopButtonSubtext: "End current game",
|
|
431
|
+
startButtonColor: "#3b82f6",
|
|
432
|
+
stopButtonColor: "#dc2626",
|
|
433
|
+
startButtonBorderColor: "#60a5fa",
|
|
434
|
+
stopButtonBorderColor: "#f87171"
|
|
435
|
+
})
|
|
367
436
|
}), /*#__PURE__*/_jsx(GameOverModal, {
|
|
368
437
|
isVisible: gameOver,
|
|
369
438
|
score: score,
|
|
@@ -386,6 +455,22 @@ export const BalloonBlaster = ({
|
|
|
386
455
|
const styles = StyleSheet.create({
|
|
387
456
|
container: {
|
|
388
457
|
flex: 1
|
|
458
|
+
},
|
|
459
|
+
scoreboardContainer: {
|
|
460
|
+
position: 'absolute',
|
|
461
|
+
top: 0,
|
|
462
|
+
left: 20,
|
|
463
|
+
right: 20,
|
|
464
|
+
zIndex: 10,
|
|
465
|
+
pointerEvents: 'none' // Allow touches to pass through to GameArea
|
|
466
|
+
},
|
|
467
|
+
controlButtonContainer: {
|
|
468
|
+
position: 'absolute',
|
|
469
|
+
bottom: 20,
|
|
470
|
+
left: 20,
|
|
471
|
+
right: 20,
|
|
472
|
+
zIndex: 10,
|
|
473
|
+
alignItems: 'center'
|
|
389
474
|
}
|
|
390
475
|
});
|
|
391
476
|
//# sourceMappingURL=BalloonBlaster.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","View","StyleSheet","Modal","runOnJS","Gesture","GestureDetector","GestureHandlerRootView","Speech","Haptics","useBalloonBlasterStore","createBalloonBlasterService","GAME_CONFIG","ScoreBoard","GameArea","GameControls","GameOverModal","GameBackground","DEFAULT_BALLOON_BLASTER_SETTINGS","gameDuration","difficulty","soundEnabled","hapticEnabled","getDifficultySpawnInterval","intervals","easy","medium","hard","GameSettings","createGameSettingsStore","jsx","_jsx","jsxs","_jsxs","BalloonBlaster","settings","externalSettings","onSettingsChange","showSettingsModal","onToggleSettingsModal","useSettings","useMemo","prevSettingsRef","prev","current","updateSettings","hasChanged","score","timeLeft","isPlaying","gameOver","lives","balloons","slicePath","isSlicing","startGame","stopGame","resetGame","popBalloon","decrementTime","addBalloon","removeBalloon","updateBalloon","setSlicePath","setIsSlicing","resetCombo","loseLife","addLife","balloonAnimations","Map","particleAnimations","gameService","currentSlicePath","checkBalloonIntersections","currentBalloons","getState","forEach","balloon","isPopped","checkBalloonPop","handleBalloonPop","id","clearSlicePath","setTimeout","playPopSound","_balloonType","speak","pitch","rate","volume","impactAsync","ImpactFeedbackStyle","Light","playBombSound","Heavy","handleStartGame","resetAnimations","startGameTimer","startBalloonSpawning","spawnBalloon","startPhysicsLoop","handleStopGame","cleanup","handleResetGame","balloonId","currentState","find","b","isBomb","stateBeforeLoss","createPopParticles","type","name","isBonus","delete","handleGestureStart","event","x","y","handleGestureUpdate","newPoint","push","length","SLICE_TRAIL_LENGTH","shift","handleGestureEnd","panGesture","Pan","onStart","onUpdate","onEnd","has","set","scale","opacity","cleanupTimeout","clearTimeout","interval","setInterval","position","livesBeforeLoss","clearInterval","style","flex","children","styles","container","gesture","particles","getParticles","onBalloonPop","onStartGame","onStopGame","isVisible","onPlayAgain","visible","animationType","presentationStyle","onRequestClose","gameId","onClose","settingsStore","create"],"sourceRoot":"../../../../src","sources":["games/balloon-blaster/BalloonBlaster.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","useCallback","View","StyleSheet","Modal","runOnJS","Gesture","GestureDetector","GestureHandlerRootView","playSound","GAME_SOUNDS","playHaptic","HapticType","useBalloonBlasterStore","createBalloonBlasterService","GAME_CONFIG","ScoreBoard","GameArea","GameOverModal","GameBackground","GameControlButton","DEFAULT_BALLOON_BLASTER_SETTINGS","gameDuration","difficulty","soundEnabled","hapticEnabled","getDifficultySpawnInterval","intervals","easy","medium","hard","GameSettings","createGameSettingsStore","jsx","_jsx","jsxs","_jsxs","BalloonBlaster","settings","externalSettings","onSettingsChange","showSettingsModal","onToggleSettingsModal","useSettings","useMemo","prevSettingsRef","prev","current","updateSettings","hasChanged","score","timeLeft","isPlaying","gameOver","lives","balloons","particles","slicePath","isSlicing","startGame","stopGame","resetGame","popBalloon","decrementTime","addBalloon","removeBalloon","updateBalloon","setParticles","setSlicePath","setIsSlicing","resetCombo","loseLife","addLife","balloonAnimations","Map","particleAnimations","gameService","currentSlicePath","checkBalloonIntersections","currentBalloons","getState","forEach","balloon","isPopped","checkBalloonPop","balloonId","id","currentState","targetBalloon","find","b","isBomb","BALLOON_BLASTER","BOMB","HEAVY","stateBeforeLoss","createPopParticles","POP","LIGHT","isBonus","setTimeout","delete","clearSlicePath","spawnBalloon","handleStartGame","resetAnimations","startGameTimer","startBalloonSpawning","startPhysicsLoop","handleStopGame","cleanup","handleResetGame","handleBalloonPop","handleGestureStart","event","x","y","handleGestureUpdate","newPoint","push","length","SLICE_TRAIL_LENGTH","shift","handleGestureEnd","panGesture","Pan","onStart","onUpdate","onEnd","has","set","scale","opacity","syncParticles","currentParticles","getParticles","requestAnimationFrame","animationId","cancelAnimationFrame","cleanupTimeout","clearTimeout","interval","setInterval","position","livesBeforeLoss","clearInterval","style","flex","children","styles","container","gesture","onBalloonPop","scoreboardContainer","controlButtonContainer","onStartGame","onStopGame","startButtonText","stopButtonText","startButtonSubtext","stopButtonSubtext","startButtonColor","stopButtonColor","startButtonBorderColor","stopButtonBorderColor","isVisible","onPlayAgain","visible","animationType","presentationStyle","onRequestClose","gameId","onClose","settingsStore","create","top","left","right","zIndex","pointerEvents","bottom","alignItems"],"sourceRoot":"../../../../src","sources":["games/balloon-blaster/BalloonBlaster.tsx"],"mappings":"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","ignoreList":[]}
|