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,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// Balloon Blaster Game Constants
|
|
4
|
+
export const BALLOON_BLASTER_GAME_CONFIG = {
|
|
5
|
+
GAME_DURATION: 60,
|
|
6
|
+
// seconds
|
|
7
|
+
MAX_LIVES: 3,
|
|
8
|
+
BALLOON_SPAWN_INTERVAL: 1200,
|
|
9
|
+
// ms - faster balloon spawning
|
|
10
|
+
BALLOON_RISE_SPEED: 0.08,
|
|
11
|
+
// pixels per frame - balloons rise from bottom to top (slightly faster)
|
|
12
|
+
GRAVITY: -0.003,
|
|
13
|
+
// negative gravity for upward movement (slightly stronger)
|
|
14
|
+
INITIAL_VELOCITY_Y: -0.5,
|
|
15
|
+
// negative for upward movement (slightly faster initial speed)
|
|
16
|
+
INITIAL_VELOCITY_X_RANGE: 0.1,
|
|
17
|
+
// horizontal velocity range (further reduced for less horizontal drift)
|
|
18
|
+
ROTATION_SPEED_RANGE: 0.02,
|
|
19
|
+
// realistic balloon rotation speed (reduced from 0.2 for more natural movement)
|
|
20
|
+
BALLOON_SIZE: 60,
|
|
21
|
+
SLICE_TRAIL_LENGTH: 10,
|
|
22
|
+
COMBO_TIMEOUT: 2000,
|
|
23
|
+
// ms
|
|
24
|
+
PARTICLE_COUNT: 4,
|
|
25
|
+
// Reduced from 8 to 4 for better performance
|
|
26
|
+
PARTICLE_LIFETIME: 600 // Reduced from 1000ms to 600ms for faster cleanup
|
|
27
|
+
};
|
|
28
|
+
export const BALLOON_BLASTER_ANIMATION_CONFIG = {
|
|
29
|
+
BALLOON_SPRING: {
|
|
30
|
+
damping: 30,
|
|
31
|
+
stiffness: 50
|
|
32
|
+
},
|
|
33
|
+
POP_SPRING: {
|
|
34
|
+
damping: 20,
|
|
35
|
+
stiffness: 300
|
|
36
|
+
},
|
|
37
|
+
PARTICLE_SPRING: {
|
|
38
|
+
damping: 25,
|
|
39
|
+
stiffness: 400
|
|
40
|
+
},
|
|
41
|
+
SLICE_TIMING: {
|
|
42
|
+
duration: 200
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
export const BALLOON_BLASTER_COLORS = {
|
|
46
|
+
BACKGROUND: '#87CEEB',
|
|
47
|
+
// Sky blue
|
|
48
|
+
SCORE_BOARD: '#4169E1',
|
|
49
|
+
SLICE_TRAIL: '#FFD700',
|
|
50
|
+
PARTICLE_COLORS: ['#FF6B6B', '#4ECDC4', '#45B7D1', '#96CEB4', '#FFEAA7', '#DDA0DD'],
|
|
51
|
+
COMBO_TEXT: '#FF4757',
|
|
52
|
+
LIVES_COLOR: '#FF6B6B',
|
|
53
|
+
PARTICLE_GLOW: 'rgba(255,255,255,0.9)',
|
|
54
|
+
SCORE: '#FFFFFF',
|
|
55
|
+
UI: '#FF6347',
|
|
56
|
+
BUTTON_ACTIVE: '#FF7F50',
|
|
57
|
+
BUTTON_INACTIVE: '#FFA07A',
|
|
58
|
+
TEXT_PRIMARY: '#FFFFFF',
|
|
59
|
+
TEXT_SECONDARY: '#F0F8FF',
|
|
60
|
+
WHITE: '#FFFFFF',
|
|
61
|
+
START_BUTTON: '#4CAF50',
|
|
62
|
+
GAME_OVER_OVERLAY: 'rgba(0, 0, 0, 0.85)'
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
// Balloon types and their properties
|
|
66
|
+
export const BALLOON_TYPES = [{
|
|
67
|
+
emoji: '🎈',
|
|
68
|
+
points: 10,
|
|
69
|
+
name: 'red balloon',
|
|
70
|
+
color: '#FF0040',
|
|
71
|
+
gradient: ['#FF0040', '#FF4080']
|
|
72
|
+
}, {
|
|
73
|
+
emoji: '🎈',
|
|
74
|
+
points: 10,
|
|
75
|
+
name: 'blue balloon',
|
|
76
|
+
color: '#0080FF',
|
|
77
|
+
gradient: ['#0080FF', '#40A0FF']
|
|
78
|
+
}, {
|
|
79
|
+
emoji: '🎈',
|
|
80
|
+
points: 15,
|
|
81
|
+
name: 'yellow balloon',
|
|
82
|
+
color: '#FFD700',
|
|
83
|
+
gradient: ['#FFD700', '#FFEB3B']
|
|
84
|
+
}, {
|
|
85
|
+
emoji: '🎈',
|
|
86
|
+
points: 20,
|
|
87
|
+
name: 'green balloon',
|
|
88
|
+
color: '#00FF80',
|
|
89
|
+
gradient: ['#00FF80', '#40FFA0']
|
|
90
|
+
}, {
|
|
91
|
+
emoji: '🎈',
|
|
92
|
+
points: 25,
|
|
93
|
+
name: 'purple balloon',
|
|
94
|
+
color: '#8000FF',
|
|
95
|
+
gradient: ['#8000FF', '#A040FF']
|
|
96
|
+
}, {
|
|
97
|
+
emoji: '🎈',
|
|
98
|
+
points: 15,
|
|
99
|
+
name: 'pink balloon',
|
|
100
|
+
color: '#FF0080',
|
|
101
|
+
gradient: ['#FF0080', '#FF40A0']
|
|
102
|
+
}, {
|
|
103
|
+
emoji: '🎈',
|
|
104
|
+
points: 30,
|
|
105
|
+
name: 'orange balloon',
|
|
106
|
+
color: '#FF4000',
|
|
107
|
+
gradient: ['#FF4000', '#FF8040']
|
|
108
|
+
}, {
|
|
109
|
+
emoji: '🎈',
|
|
110
|
+
points: 25,
|
|
111
|
+
name: 'cyan balloon',
|
|
112
|
+
color: '#00FFFF',
|
|
113
|
+
gradient: ['#00FFFF', '#40FFFF']
|
|
114
|
+
}, {
|
|
115
|
+
emoji: '🎈',
|
|
116
|
+
points: 35,
|
|
117
|
+
name: 'magenta balloon',
|
|
118
|
+
color: '#FF00FF',
|
|
119
|
+
gradient: ['#FF00FF', '#FF40FF']
|
|
120
|
+
}, {
|
|
121
|
+
emoji: '🎈',
|
|
122
|
+
points: 40,
|
|
123
|
+
name: 'gold balloon',
|
|
124
|
+
color: '#FFB000',
|
|
125
|
+
gradient: ['#FFB000', '#FFD700']
|
|
126
|
+
}, {
|
|
127
|
+
emoji: '🎈',
|
|
128
|
+
points: 45,
|
|
129
|
+
name: 'rainbow balloon',
|
|
130
|
+
color: '#FF0080',
|
|
131
|
+
gradient: ['#FF0080', '#8000FF', '#0080FF', '#00FF80']
|
|
132
|
+
}, {
|
|
133
|
+
emoji: '🎈',
|
|
134
|
+
points: 50,
|
|
135
|
+
name: 'neon balloon',
|
|
136
|
+
color: '#00FF00',
|
|
137
|
+
gradient: ['#00FF00', '#FFFF00']
|
|
138
|
+
}];
|
|
139
|
+
export const BALLOON_SPECIAL_ITEMS = [{
|
|
140
|
+
emoji: '💣',
|
|
141
|
+
points: -50,
|
|
142
|
+
name: 'bomb',
|
|
143
|
+
isBomb: true,
|
|
144
|
+
color: '#FF4444'
|
|
145
|
+
}, {
|
|
146
|
+
emoji: '⭐',
|
|
147
|
+
points: 50,
|
|
148
|
+
name: 'star',
|
|
149
|
+
isBonus: true,
|
|
150
|
+
color: '#FFD700'
|
|
151
|
+
}];
|
|
152
|
+
|
|
153
|
+
// Balloon Blaster Game Theme - Matches scoreboard blue
|
|
154
|
+
export const BALLOON_BLASTER_THEME = {
|
|
155
|
+
backgroundColor: '#87CEEB',
|
|
156
|
+
// Sky blue background
|
|
157
|
+
headerBackgroundColor: 'rgba(59, 130, 246, 0.9)',
|
|
158
|
+
// Blue header to match scoreboard
|
|
159
|
+
headerTextColor: '#ffffff',
|
|
160
|
+
sectionBackgroundColor: 'rgba(59, 130, 246, 0.4)',
|
|
161
|
+
// Match scoreboard transparency
|
|
162
|
+
sectionTitleColor: '#ffffff',
|
|
163
|
+
// White text on blue sections
|
|
164
|
+
buttonSelectedColor: '#3b82f6',
|
|
165
|
+
// Match actual start button blue
|
|
166
|
+
buttonUnselectedColor: 'rgba(255, 255, 255, 0.3)',
|
|
167
|
+
buttonSelectedTextColor: '#ffffff',
|
|
168
|
+
buttonUnselectedTextColor: '#1f2937',
|
|
169
|
+
switchTrackColorFalse: 'rgba(59, 130, 246, 0.5)',
|
|
170
|
+
switchTrackColorTrue: '#3b82f6',
|
|
171
|
+
// Match actual start button blue
|
|
172
|
+
switchThumbColor: '#ffffff',
|
|
173
|
+
infoTextColor: '#1f2937' // Dark text for readability
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
// Balloon Blaster Difficulty Descriptions
|
|
177
|
+
export const BALLOON_BLASTER_DIFFICULTY_DESCRIPTIONS = {
|
|
178
|
+
easy: 'Balloons spawn slower, more forgiving',
|
|
179
|
+
medium: 'Balanced gameplay and balloon speed',
|
|
180
|
+
hard: 'Fast balloons, quick reflexes needed!'
|
|
181
|
+
};
|
|
182
|
+
//# sourceMappingURL=BalloonBlasterConstants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BALLOON_BLASTER_GAME_CONFIG","GAME_DURATION","MAX_LIVES","BALLOON_SPAWN_INTERVAL","BALLOON_RISE_SPEED","GRAVITY","INITIAL_VELOCITY_Y","INITIAL_VELOCITY_X_RANGE","ROTATION_SPEED_RANGE","BALLOON_SIZE","SLICE_TRAIL_LENGTH","COMBO_TIMEOUT","PARTICLE_COUNT","PARTICLE_LIFETIME","BALLOON_BLASTER_ANIMATION_CONFIG","BALLOON_SPRING","damping","stiffness","POP_SPRING","PARTICLE_SPRING","SLICE_TIMING","duration","BALLOON_BLASTER_COLORS","BACKGROUND","SCORE_BOARD","SLICE_TRAIL","PARTICLE_COLORS","COMBO_TEXT","LIVES_COLOR","PARTICLE_GLOW","SCORE","UI","BUTTON_ACTIVE","BUTTON_INACTIVE","TEXT_PRIMARY","TEXT_SECONDARY","WHITE","START_BUTTON","GAME_OVER_OVERLAY","BALLOON_TYPES","emoji","points","name","color","gradient","BALLOON_SPECIAL_ITEMS","isBomb","isBonus","BALLOON_BLASTER_THEME","backgroundColor","headerBackgroundColor","headerTextColor","sectionBackgroundColor","sectionTitleColor","buttonSelectedColor","buttonUnselectedColor","buttonSelectedTextColor","buttonUnselectedTextColor","switchTrackColorFalse","switchTrackColorTrue","switchThumbColor","infoTextColor","BALLOON_BLASTER_DIFFICULTY_DESCRIPTIONS","easy","medium","hard"],"sourceRoot":"../../../../src","sources":["games/balloon-blaster/BalloonBlasterConstants.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { Dimensions } from 'react-native';
|
|
4
|
-
import { BALLOON_BLASTER_GAME_CONFIG as GAME_CONFIG, BALLOON_BLASTER_ANIMATION_CONFIG as ANIMATION_CONFIG, BALLOON_BLASTER_COLORS as COLORS, BALLOON_TYPES, BALLOON_SPECIAL_ITEMS as SPECIAL_ITEMS } from "
|
|
4
|
+
import { BALLOON_BLASTER_GAME_CONFIG as GAME_CONFIG, BALLOON_BLASTER_ANIMATION_CONFIG as ANIMATION_CONFIG, BALLOON_BLASTER_COLORS as COLORS, BALLOON_TYPES, BALLOON_SPECIAL_ITEMS as SPECIAL_ITEMS } from "./BalloonBlasterConstants.js";
|
|
5
5
|
const {
|
|
6
6
|
width,
|
|
7
7
|
height
|
|
8
8
|
} = Dimensions.get('window');
|
|
9
9
|
|
|
10
|
-
// Constants now imported from
|
|
10
|
+
// Constants now imported from BalloonBlasterConstants.ts
|
|
11
11
|
// Re-export for backward compatibility
|
|
12
12
|
export { GAME_CONFIG, ANIMATION_CONFIG, COLORS, BALLOON_TYPES, SPECIAL_ITEMS };
|
|
13
13
|
|
|
@@ -34,67 +34,78 @@ export class BalloonBlasterService {
|
|
|
34
34
|
const balloon = this.createRandomBalloon();
|
|
35
35
|
spawnBalloon(balloon);
|
|
36
36
|
|
|
37
|
-
//
|
|
38
|
-
const randomVariation = (Math.random() - 0.5) *
|
|
37
|
+
// Reduced random variation for more consistent spawning
|
|
38
|
+
const randomVariation = (Math.random() - 0.5) * 200; // Reduced from 400ms to 200ms
|
|
39
39
|
const nextSpawnTime = spawnInterval + randomVariation;
|
|
40
|
-
this.balloonSpawnRef = setTimeout(spawnLoop, Math.max(
|
|
40
|
+
this.balloonSpawnRef = setTimeout(spawnLoop, Math.max(300, nextSpawnTime)); // Reduced minimum from 600ms to 300ms
|
|
41
41
|
};
|
|
42
42
|
|
|
43
|
-
//
|
|
44
|
-
|
|
43
|
+
// Spawn initial balloons with better spacing to prevent overlap
|
|
44
|
+
for (let i = 0; i < 3; i++) {
|
|
45
|
+
// Reduced from 5 to 3 to prevent bulk spawning
|
|
46
|
+
setTimeout(() => {
|
|
47
|
+
const initialBalloon = this.createRandomBalloon();
|
|
48
|
+
spawnBalloon(initialBalloon);
|
|
49
|
+
}, i * 200); // Increased stagger to 200ms for better spacing
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Start continuous spawning loop with proper delay
|
|
53
|
+
this.balloonSpawnRef = setTimeout(spawnLoop, 600); // Increased delay to prevent immediate overlap
|
|
45
54
|
}
|
|
46
55
|
startPhysicsLoop(updateBalloon, removeBalloon, getBalloons) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
56
|
+
let lastTime = performance.now();
|
|
57
|
+
const targetFPS = 60;
|
|
58
|
+
const targetFrameTime = 1000 / targetFPS;
|
|
59
|
+
const updateLoop = currentTime => {
|
|
60
|
+
const deltaTime = currentTime - lastTime;
|
|
61
|
+
|
|
62
|
+
// Frame rate limiting - only update if enough time has passed
|
|
63
|
+
if (deltaTime < targetFrameTime) {
|
|
64
|
+
this.animationRef = requestAnimationFrame(updateLoop);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
lastTime = currentTime;
|
|
68
|
+
const deltaMultiplier = deltaTime / 16.67; // Normalize to 60fps baseline
|
|
51
69
|
|
|
52
|
-
|
|
53
|
-
|
|
70
|
+
// Always update particles for smooth animation with delta time
|
|
71
|
+
this.updateParticles(deltaMultiplier);
|
|
72
|
+
const balloons = getBalloons();
|
|
54
73
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const
|
|
74
|
+
// Use for loop instead of forEach for better performance
|
|
75
|
+
for (let i = 0; i < balloons.length; i++) {
|
|
76
|
+
const balloon = balloons[i];
|
|
77
|
+
if (!balloon || balloon.isPopped) continue;
|
|
58
78
|
|
|
59
|
-
//
|
|
60
|
-
const
|
|
79
|
+
// Physics calculations with delta time
|
|
80
|
+
const newVelocityY = balloon.velocity.y + GAME_CONFIG.GRAVITY * deltaMultiplier;
|
|
81
|
+
let newX = balloon.position.x + balloon.velocity.x * deltaMultiplier;
|
|
82
|
+
const newY = balloon.position.y + newVelocityY * deltaMultiplier;
|
|
83
|
+
const newRotation = balloon.rotation + balloon.rotationSpeed * deltaMultiplier;
|
|
61
84
|
|
|
62
85
|
// Remove balloons that float off screen (top only)
|
|
63
86
|
if (newY < -100) {
|
|
64
87
|
removeBalloon(balloon.id);
|
|
65
|
-
|
|
88
|
+
continue;
|
|
66
89
|
}
|
|
67
90
|
|
|
68
|
-
//
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
updateBalloon(balloon.id, {
|
|
74
|
-
position: {
|
|
75
|
-
x: newX,
|
|
76
|
-
y: height + 50
|
|
77
|
-
},
|
|
78
|
-
velocity: {
|
|
79
|
-
x: newVelocityX,
|
|
80
|
-
y: adjustedVelocityY
|
|
81
|
-
},
|
|
82
|
-
rotation: newRotation
|
|
83
|
-
});
|
|
84
|
-
return;
|
|
91
|
+
// Remove balloons that go too far below screen (they should only move upward)
|
|
92
|
+
if (newY > height + 100) {
|
|
93
|
+
// Remove balloons that somehow drift too far down
|
|
94
|
+
removeBalloon(balloon.id);
|
|
95
|
+
continue;
|
|
85
96
|
}
|
|
86
97
|
|
|
87
|
-
//
|
|
98
|
+
// Simplified wall bounce logic
|
|
99
|
+
let newVelocityX = balloon.velocity.x;
|
|
88
100
|
if (newX <= 0) {
|
|
89
101
|
newX = 0;
|
|
90
102
|
newVelocityX = Math.abs(newVelocityX) * 0.8; // Bounce right with damping
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// Right wall bounce
|
|
94
|
-
if (newX >= width - GAME_CONFIG.BALLOON_SIZE) {
|
|
103
|
+
} else if (newX >= width - GAME_CONFIG.BALLOON_SIZE) {
|
|
95
104
|
newX = width - GAME_CONFIG.BALLOON_SIZE;
|
|
96
105
|
newVelocityX = -Math.abs(newVelocityX) * 0.8; // Bounce left with damping
|
|
97
106
|
}
|
|
107
|
+
|
|
108
|
+
// Batch update for better performance
|
|
98
109
|
updateBalloon(balloon.id, {
|
|
99
110
|
position: {
|
|
100
111
|
x: newX,
|
|
@@ -106,10 +117,7 @@ export class BalloonBlasterService {
|
|
|
106
117
|
},
|
|
107
118
|
rotation: newRotation
|
|
108
119
|
});
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
// Update particles
|
|
112
|
-
this.updateParticles();
|
|
120
|
+
}
|
|
113
121
|
this.animationRef = requestAnimationFrame(updateLoop);
|
|
114
122
|
};
|
|
115
123
|
this.animationRef = requestAnimationFrame(updateLoop);
|
|
@@ -118,44 +126,20 @@ export class BalloonBlasterService {
|
|
|
118
126
|
// 10% chance for special items
|
|
119
127
|
const isSpecial = Math.random() < 0.1;
|
|
120
128
|
const type = isSpecial ? SPECIAL_ITEMS[Math.floor(Math.random() * SPECIAL_ITEMS.length)] : BALLOON_TYPES[Math.floor(Math.random() * BALLOON_TYPES.length)];
|
|
121
|
-
if (!type) {
|
|
122
|
-
// Fallback to default balloon type if undefined
|
|
123
|
-
const defaultType = BALLOON_TYPES[0];
|
|
124
|
-
const spawnX = Math.random() * (width - GAME_CONFIG.BALLOON_SIZE);
|
|
125
|
-
const spawnY = height + 20; // Start from bottom
|
|
126
|
-
const velocityX = (Math.random() - 0.5) * GAME_CONFIG.INITIAL_VELOCITY_X_RANGE;
|
|
127
|
-
const velocityY = GAME_CONFIG.INITIAL_VELOCITY_Y + (Math.random() - 0.5) * 2;
|
|
128
|
-
return {
|
|
129
|
-
id: `balloon_${Date.now()}_${Math.random()}`,
|
|
130
|
-
type: defaultType,
|
|
131
|
-
position: {
|
|
132
|
-
x: spawnX,
|
|
133
|
-
y: spawnY
|
|
134
|
-
},
|
|
135
|
-
velocity: {
|
|
136
|
-
x: velocityX,
|
|
137
|
-
y: velocityY
|
|
138
|
-
},
|
|
139
|
-
rotation: 0,
|
|
140
|
-
rotationSpeed: (Math.random() - 0.5) * 0.2,
|
|
141
|
-
isPopped: false,
|
|
142
|
-
spawnTime: Date.now(),
|
|
143
|
-
isBomb: 'isBomb' in defaultType && Boolean(defaultType.isBomb),
|
|
144
|
-
isBonus: 'isBonus' in defaultType && Boolean(defaultType.isBonus)
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
129
|
|
|
148
|
-
//
|
|
130
|
+
// Use fallback if type is undefined
|
|
131
|
+
const balloonType = type || BALLOON_TYPES[0];
|
|
132
|
+
|
|
133
|
+
// FORCE all balloons to spawn from bottom - no complex logic
|
|
149
134
|
const spawnX = Math.random() * (width - GAME_CONFIG.BALLOON_SIZE);
|
|
150
|
-
const spawnY = height + 20; //
|
|
135
|
+
const spawnY = height + 20; // Always spawn below screen
|
|
151
136
|
|
|
152
|
-
//
|
|
137
|
+
// Simple upward velocity
|
|
153
138
|
const velocityX = (Math.random() - 0.5) * GAME_CONFIG.INITIAL_VELOCITY_X_RANGE;
|
|
154
|
-
const velocityY = GAME_CONFIG.INITIAL_VELOCITY_Y
|
|
155
|
-
|
|
139
|
+
const velocityY = GAME_CONFIG.INITIAL_VELOCITY_Y;
|
|
156
140
|
return {
|
|
157
141
|
id: `balloon_${Date.now()}_${Math.random()}`,
|
|
158
|
-
type,
|
|
142
|
+
type: balloonType,
|
|
159
143
|
position: {
|
|
160
144
|
x: spawnX,
|
|
161
145
|
y: spawnY
|
|
@@ -165,51 +149,89 @@ export class BalloonBlasterService {
|
|
|
165
149
|
y: velocityY
|
|
166
150
|
},
|
|
167
151
|
rotation: 0,
|
|
168
|
-
rotationSpeed: (Math.random() - 0.5) *
|
|
152
|
+
rotationSpeed: (Math.random() - 0.5) * GAME_CONFIG.ROTATION_SPEED_RANGE,
|
|
169
153
|
isPopped: false,
|
|
170
154
|
spawnTime: Date.now(),
|
|
171
|
-
isBomb: 'isBomb' in
|
|
172
|
-
isBonus: 'isBonus' in
|
|
155
|
+
isBomb: 'isBomb' in balloonType && balloonType.isBomb,
|
|
156
|
+
isBonus: 'isBonus' in balloonType && balloonType.isBonus
|
|
173
157
|
};
|
|
174
158
|
}
|
|
175
159
|
createPopParticles(balloon) {
|
|
160
|
+
// Aggressive particle limiting to prevent performance issues during rapid popping
|
|
161
|
+
const maxTotalParticles = 15; // Reduced maximum particles on screen at once
|
|
162
|
+
if (this.particles.length >= maxTotalParticles) {
|
|
163
|
+
// Remove half of existing particles to make room for new ones
|
|
164
|
+
this.particles.splice(0, Math.floor(this.particles.length / 2));
|
|
165
|
+
}
|
|
176
166
|
const particles = [];
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
167
|
+
const particleCount = Math.min(GAME_CONFIG.PARTICLE_COUNT, 6); // Limit particles per balloon to 6
|
|
168
|
+
|
|
169
|
+
// Calculate balloon center for particle spawn
|
|
170
|
+
const balloonCenterX = balloon.position.x + GAME_CONFIG.BALLOON_SIZE / 2;
|
|
171
|
+
const balloonCenterY = balloon.position.y + GAME_CONFIG.BALLOON_SIZE / 2;
|
|
172
|
+
for (let i = 0; i < particleCount; i++) {
|
|
173
|
+
const angle = i / particleCount * Math.PI * 2;
|
|
174
|
+
const speed = 5 + Math.random() * 4; // Increased speed for better visibility
|
|
175
|
+
|
|
180
176
|
particles.push({
|
|
181
|
-
id: `particle_${balloon.id}_${Date.now()}_${Math.random()}
|
|
177
|
+
id: `particle_${balloon.id}_${i}_${Date.now()}_${Math.random()}`,
|
|
178
|
+
// More unique ID
|
|
182
179
|
position: {
|
|
183
|
-
|
|
180
|
+
x: balloonCenterX,
|
|
181
|
+
// Center particles exactly on balloon center
|
|
182
|
+
y: balloonCenterY
|
|
184
183
|
},
|
|
185
184
|
velocity: {
|
|
186
185
|
x: Math.cos(angle) * speed,
|
|
187
|
-
y: Math.sin(angle) * speed -
|
|
186
|
+
y: Math.sin(angle) * speed - 3 // Stronger upward bias for visibility
|
|
188
187
|
},
|
|
189
|
-
color: COLORS.PARTICLE_COLORS[
|
|
190
|
-
size: 4 + Math.random() *
|
|
188
|
+
color: COLORS.PARTICLE_COLORS[i % COLORS.PARTICLE_COLORS.length] || '#FF6B6B',
|
|
189
|
+
size: 4 + Math.random() * 3,
|
|
190
|
+
// Slightly smaller particles (4-7px) for better performance
|
|
191
191
|
lifetime: 0,
|
|
192
|
-
maxLifetime: GAME_CONFIG.PARTICLE_LIFETIME
|
|
192
|
+
maxLifetime: Math.min(GAME_CONFIG.PARTICLE_LIFETIME, 800) // Reduced lifetime for better performance
|
|
193
193
|
});
|
|
194
194
|
}
|
|
195
|
-
|
|
195
|
+
|
|
196
|
+
// Create new particles array instead of mutating existing one
|
|
197
|
+
this.particles = [...this.particles, ...particles];
|
|
196
198
|
return particles;
|
|
197
199
|
}
|
|
198
|
-
updateParticles() {
|
|
199
|
-
|
|
200
|
-
|
|
200
|
+
updateParticles(deltaMultiplier = 1) {
|
|
201
|
+
// Optimized particle update with delta time
|
|
202
|
+
const deltaTime = 16 * deltaMultiplier; // Scale with actual frame time
|
|
203
|
+
const gravity = 0.08 * deltaMultiplier; // Scale gravity with delta time
|
|
204
|
+
|
|
205
|
+
// Use filter to create new array instead of mutating existing one
|
|
206
|
+
const updatedParticles = [];
|
|
207
|
+
for (let i = 0; i < this.particles.length; i++) {
|
|
208
|
+
const particle = this.particles[i];
|
|
209
|
+
if (!particle) continue;
|
|
201
210
|
|
|
202
|
-
|
|
203
|
-
|
|
211
|
+
// Create a new particle object to avoid mutation
|
|
212
|
+
const updatedParticle = {
|
|
213
|
+
...particle
|
|
214
|
+
};
|
|
215
|
+
updatedParticle.lifetime += deltaTime;
|
|
216
|
+
if (updatedParticle.lifetime >= updatedParticle.maxLifetime) {
|
|
217
|
+
// Skip expired particle (don't add to updatedParticles)
|
|
218
|
+
continue;
|
|
204
219
|
}
|
|
205
220
|
|
|
206
|
-
// Update particle physics
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
221
|
+
// Update particle physics with delta time scaling
|
|
222
|
+
updatedParticle.position = {
|
|
223
|
+
x: updatedParticle.position.x + updatedParticle.velocity.x * deltaMultiplier,
|
|
224
|
+
y: updatedParticle.position.y + updatedParticle.velocity.y * deltaMultiplier
|
|
225
|
+
};
|
|
226
|
+
updatedParticle.velocity = {
|
|
227
|
+
x: updatedParticle.velocity.x * Math.pow(0.99, deltaMultiplier),
|
|
228
|
+
y: (updatedParticle.velocity.y + gravity) * Math.pow(0.99, deltaMultiplier)
|
|
229
|
+
};
|
|
230
|
+
updatedParticles.push(updatedParticle);
|
|
231
|
+
}
|
|
210
232
|
|
|
211
|
-
|
|
212
|
-
|
|
233
|
+
// Replace particles array with updated one
|
|
234
|
+
this.particles = updatedParticles;
|
|
213
235
|
}
|
|
214
236
|
getParticles() {
|
|
215
237
|
return this.particles;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Dimensions","BALLOON_BLASTER_GAME_CONFIG","GAME_CONFIG","BALLOON_BLASTER_ANIMATION_CONFIG","ANIMATION_CONFIG","BALLOON_BLASTER_COLORS","COLORS","BALLOON_TYPES","BALLOON_SPECIAL_ITEMS","SPECIAL_ITEMS","width","height","get","BalloonBlasterService","gameTimerRef","balloonSpawnRef","animationRef","comboTimeoutRef","particles","constructor","balloonAnimations","particleAnimations","startGameTimer","onTick","clearGameTimer","setInterval","startBalloonSpawning","spawnBalloon","customSpawnInterval","clearBalloonSpawn","spawnInterval","BALLOON_SPAWN_INTERVAL","spawnLoop","balloon","createRandomBalloon","randomVariation","Math","random","nextSpawnTime","setTimeout","max","startPhysicsLoop","updateBalloon","removeBalloon","getBalloons","updateLoop","balloons","forEach","isPopped","newVelocityY","velocity","y","GRAVITY","newX","position","x","newY","newRotation","rotation","rotationSpeed","id","newVelocityX","adjustedVelocityY","min","abs","BALLOON_SIZE","updateParticles","requestAnimationFrame","isSpecial","type","floor","length","defaultType","spawnX","spawnY","velocityX","INITIAL_VELOCITY_X_RANGE","velocityY","INITIAL_VELOCITY_Y","Date","now","spawnTime","isBomb","Boolean","isBonus","createPopParticles","i","PARTICLE_COUNT","angle","PI","speed","push","cos","sin","color","PARTICLE_COLORS","size","lifetime","maxLifetime","PARTICLE_LIFETIME","filter","particle","getParticles","checkBalloonPop","slicePath","balloonCenter","balloonRadius","p1","p2","distance","distanceFromPointToLine","point","lineStart","lineEnd","A","B","C","D","dot","lenSq","sqrt","param","xx","yy","dx","dy","resetAnimations","clear","cleanup","clearAnimationLoop","clearComboTimeout","clearInterval","clearTimeout","cancelAnimationFrame","createBalloonBlasterService"],"sourceRoot":"../../../../src","sources":["games/balloon-blaster/BalloonBlasterService.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Dimensions","BALLOON_BLASTER_GAME_CONFIG","GAME_CONFIG","BALLOON_BLASTER_ANIMATION_CONFIG","ANIMATION_CONFIG","BALLOON_BLASTER_COLORS","COLORS","BALLOON_TYPES","BALLOON_SPECIAL_ITEMS","SPECIAL_ITEMS","width","height","get","BalloonBlasterService","gameTimerRef","balloonSpawnRef","animationRef","comboTimeoutRef","particles","constructor","balloonAnimations","particleAnimations","startGameTimer","onTick","clearGameTimer","setInterval","startBalloonSpawning","spawnBalloon","customSpawnInterval","clearBalloonSpawn","spawnInterval","BALLOON_SPAWN_INTERVAL","spawnLoop","balloon","createRandomBalloon","randomVariation","Math","random","nextSpawnTime","setTimeout","max","i","initialBalloon","startPhysicsLoop","updateBalloon","removeBalloon","getBalloons","lastTime","performance","now","targetFPS","targetFrameTime","updateLoop","currentTime","deltaTime","requestAnimationFrame","deltaMultiplier","updateParticles","balloons","length","isPopped","newVelocityY","velocity","y","GRAVITY","newX","position","x","newY","newRotation","rotation","rotationSpeed","id","newVelocityX","abs","BALLOON_SIZE","isSpecial","type","floor","balloonType","spawnX","spawnY","velocityX","INITIAL_VELOCITY_X_RANGE","velocityY","INITIAL_VELOCITY_Y","Date","ROTATION_SPEED_RANGE","spawnTime","isBomb","isBonus","createPopParticles","maxTotalParticles","splice","particleCount","min","PARTICLE_COUNT","balloonCenterX","balloonCenterY","angle","PI","speed","push","cos","sin","color","PARTICLE_COLORS","size","lifetime","maxLifetime","PARTICLE_LIFETIME","gravity","updatedParticles","particle","updatedParticle","pow","getParticles","checkBalloonPop","slicePath","balloonCenter","balloonRadius","p1","p2","distance","distanceFromPointToLine","point","lineStart","lineEnd","A","B","C","D","dot","lenSq","sqrt","param","xx","yy","dx","dy","resetAnimations","clear","cleanup","clearAnimationLoop","clearComboTimeout","clearInterval","clearTimeout","cancelAnimationFrame","createBalloonBlasterService"],"sourceRoot":"../../../../src","sources":["games/balloon-blaster/BalloonBlasterService.ts"],"mappings":"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","ignoreList":[]}
|