react-native-games 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +66 -0
- package/README.md +269 -0
- package/lib/module/games/balloon-blaster/BalloonBlaster.js +391 -0
- package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -0
- package/lib/module/games/balloon-blaster/BalloonBlasterService.js +293 -0
- package/lib/module/games/balloon-blaster/BalloonBlasterService.js.map +1 -0
- package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +156 -0
- package/lib/module/games/balloon-blaster/BalloonBlasterStore.js.map +1 -0
- package/lib/module/games/balloon-blaster/components/BalloonComponent.js +227 -0
- package/lib/module/games/balloon-blaster/components/BalloonComponent.js.map +1 -0
- package/lib/module/games/balloon-blaster/components/GameArea.js +42 -0
- package/lib/module/games/balloon-blaster/components/GameArea.js.map +1 -0
- package/lib/module/games/balloon-blaster/components/GameBackground.js +544 -0
- package/lib/module/games/balloon-blaster/components/GameBackground.js.map +1 -0
- package/lib/module/games/balloon-blaster/components/GameControls.js +229 -0
- package/lib/module/games/balloon-blaster/components/GameControls.js.map +1 -0
- package/lib/module/games/balloon-blaster/components/GameOverModal.js +133 -0
- package/lib/module/games/balloon-blaster/components/GameOverModal.js.map +1 -0
- package/lib/module/games/balloon-blaster/components/ParticleSystem.js +52 -0
- package/lib/module/games/balloon-blaster/components/ParticleSystem.js.map +1 -0
- package/lib/module/games/balloon-blaster/components/ScoreBoard.js +119 -0
- package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/balloon-blaster/components/SliceTrail.js +58 -0
- package/lib/module/games/balloon-blaster/components/SliceTrail.js.map +1 -0
- package/lib/module/games/balloon-blaster/components/index.js +11 -0
- package/lib/module/games/balloon-blaster/components/index.js.map +1 -0
- package/lib/module/games/cat-popper/CatPopper.js +230 -0
- package/lib/module/games/cat-popper/CatPopper.js.map +1 -0
- package/lib/module/games/cat-popper/CatPopperService.js +100 -0
- package/lib/module/games/cat-popper/CatPopperService.js.map +1 -0
- package/lib/module/games/cat-popper/CatPopperStore.js +113 -0
- package/lib/module/games/cat-popper/CatPopperStore.js.map +1 -0
- package/lib/module/games/cat-popper/components/CatCharacter.js +281 -0
- package/lib/module/games/cat-popper/components/CatCharacter.js.map +1 -0
- package/lib/module/games/cat-popper/components/GameBackground.js +531 -0
- package/lib/module/games/cat-popper/components/GameBackground.js.map +1 -0
- package/lib/module/games/cat-popper/components/GameControls.js +230 -0
- package/lib/module/games/cat-popper/components/GameControls.js.map +1 -0
- package/lib/module/games/cat-popper/components/GameGrid.js +66 -0
- package/lib/module/games/cat-popper/components/GameGrid.js.map +1 -0
- package/lib/module/games/cat-popper/components/GameHole.js +183 -0
- package/lib/module/games/cat-popper/components/GameHole.js.map +1 -0
- package/lib/module/games/cat-popper/components/GameOverModal.js +131 -0
- package/lib/module/games/cat-popper/components/GameOverModal.js.map +1 -0
- package/lib/module/games/cat-popper/components/ScoreBoard.js +77 -0
- package/lib/module/games/cat-popper/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/cat-popper/components/index.js +10 -0
- package/lib/module/games/cat-popper/components/index.js.map +1 -0
- package/lib/module/games/fruit-slicer/FruitSlicer.js +411 -0
- package/lib/module/games/fruit-slicer/FruitSlicer.js.map +1 -0
- package/lib/module/games/fruit-slicer/FruitSlicerService.js +293 -0
- package/lib/module/games/fruit-slicer/FruitSlicerService.js.map +1 -0
- package/lib/module/games/fruit-slicer/FruitSlicerStore.js +156 -0
- package/lib/module/games/fruit-slicer/FruitSlicerStore.js.map +1 -0
- package/lib/module/games/fruit-slicer/components/FruitComponent.js +99 -0
- package/lib/module/games/fruit-slicer/components/FruitComponent.js.map +1 -0
- package/lib/module/games/fruit-slicer/components/GameArea.js +50 -0
- package/lib/module/games/fruit-slicer/components/GameArea.js.map +1 -0
- package/lib/module/games/fruit-slicer/components/GameBackground.js +1296 -0
- package/lib/module/games/fruit-slicer/components/GameBackground.js.map +1 -0
- package/lib/module/games/fruit-slicer/components/GameControls.js +230 -0
- package/lib/module/games/fruit-slicer/components/GameControls.js.map +1 -0
- package/lib/module/games/fruit-slicer/components/GameOverModal.js +189 -0
- package/lib/module/games/fruit-slicer/components/GameOverModal.js.map +1 -0
- package/lib/module/games/fruit-slicer/components/ParticleSystem.js +52 -0
- package/lib/module/games/fruit-slicer/components/ParticleSystem.js.map +1 -0
- package/lib/module/games/fruit-slicer/components/ScoreBoard.js +121 -0
- package/lib/module/games/fruit-slicer/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/fruit-slicer/components/SliceTrail.js +58 -0
- package/lib/module/games/fruit-slicer/components/SliceTrail.js.map +1 -0
- package/lib/module/games/fruit-slicer/components/index.js +11 -0
- package/lib/module/games/fruit-slicer/components/index.js.map +1 -0
- package/lib/module/games/maze-runner/MazeRunner.js +242 -0
- package/lib/module/games/maze-runner/MazeRunner.js.map +1 -0
- package/lib/module/games/maze-runner/MazeRunnerService.js +560 -0
- package/lib/module/games/maze-runner/MazeRunnerService.js.map +1 -0
- package/lib/module/games/maze-runner/components/EnhancedBallComponent.js +149 -0
- package/lib/module/games/maze-runner/components/EnhancedBallComponent.js.map +1 -0
- package/lib/module/games/maze-runner/components/EnhancedGameArea.js +357 -0
- package/lib/module/games/maze-runner/components/EnhancedGameArea.js.map +1 -0
- package/lib/module/games/maze-runner/components/GameBackground.js +216 -0
- package/lib/module/games/maze-runner/components/GameBackground.js.map +1 -0
- package/lib/module/games/maze-runner/components/GameControls.js +129 -0
- package/lib/module/games/maze-runner/components/GameControls.js.map +1 -0
- package/lib/module/games/maze-runner/components/GameOverModal.js +134 -0
- package/lib/module/games/maze-runner/components/GameOverModal.js.map +1 -0
- package/lib/module/games/maze-runner/components/ScoreBoard.js +81 -0
- package/lib/module/games/maze-runner/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/maze-runner/components/SkiaPipeComponent.js +209 -0
- package/lib/module/games/maze-runner/components/SkiaPipeComponent.js.map +1 -0
- package/lib/module/games/maze-runner/components/StaticGameBackground.js +169 -0
- package/lib/module/games/maze-runner/components/StaticGameBackground.js.map +1 -0
- package/lib/module/games/maze-runner/components/WallComponent.js +90 -0
- package/lib/module/games/maze-runner/components/WallComponent.js.map +1 -0
- package/lib/module/games/maze-runner/components/index.js +10 -0
- package/lib/module/games/maze-runner/components/index.js.map +1 -0
- package/lib/module/games/space-traveller/SpaceTraveller.js +393 -0
- package/lib/module/games/space-traveller/SpaceTraveller.js.map +1 -0
- package/lib/module/games/space-traveller/SpaceTravellerService.js +298 -0
- package/lib/module/games/space-traveller/SpaceTravellerService.js.map +1 -0
- package/lib/module/games/space-traveller/SpaceTravellerStore.js +139 -0
- package/lib/module/games/space-traveller/SpaceTravellerStore.js.map +1 -0
- package/lib/module/games/space-traveller/components/AsteroidComponent.js +111 -0
- package/lib/module/games/space-traveller/components/AsteroidComponent.js.map +1 -0
- package/lib/module/games/space-traveller/components/GameArea.js +75 -0
- package/lib/module/games/space-traveller/components/GameArea.js.map +1 -0
- package/lib/module/games/space-traveller/components/GameBackground.js +294 -0
- package/lib/module/games/space-traveller/components/GameBackground.js.map +1 -0
- package/lib/module/games/space-traveller/components/GameControls.js +177 -0
- package/lib/module/games/space-traveller/components/GameControls.js.map +1 -0
- package/lib/module/games/space-traveller/components/GameOverModal.js +182 -0
- package/lib/module/games/space-traveller/components/GameOverModal.js.map +1 -0
- package/lib/module/games/space-traveller/components/ParticleComponent.js +34 -0
- package/lib/module/games/space-traveller/components/ParticleComponent.js.map +1 -0
- package/lib/module/games/space-traveller/components/ScoreBoard.js +143 -0
- package/lib/module/games/space-traveller/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/space-traveller/components/SettingsModal.js +222 -0
- package/lib/module/games/space-traveller/components/SettingsModal.js.map +1 -0
- package/lib/module/games/space-traveller/components/Spacecraft3D.js +362 -0
- package/lib/module/games/space-traveller/components/Spacecraft3D.js.map +1 -0
- package/lib/module/games/space-traveller/components/SpacecraftPath.js +37 -0
- package/lib/module/games/space-traveller/components/SpacecraftPath.js.map +1 -0
- package/lib/module/games/space-traveller/components/index.js +13 -0
- package/lib/module/games/space-traveller/components/index.js.map +1 -0
- package/lib/module/index.js +12 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/services/GamesConstants.js +561 -0
- package/lib/module/services/GamesConstants.js.map +1 -0
- package/lib/module/services/GamesService.js +34 -0
- package/lib/module/services/GamesService.js.map +1 -0
- package/lib/module/shared/settings/GameSettings.js +295 -0
- package/lib/module/shared/settings/GameSettings.js.map +1 -0
- package/lib/module/shared/settings/SettingsService.js +119 -0
- package/lib/module/shared/settings/SettingsService.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts +16 -0
- package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -0
- package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts +66 -0
- package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts.map +1 -0
- package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts +37 -0
- package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts.map +1 -0
- package/lib/typescript/src/games/balloon-blaster/components/BalloonComponent.d.ts +10 -0
- package/lib/typescript/src/games/balloon-blaster/components/BalloonComponent.d.ts.map +1 -0
- package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts +17 -0
- package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts.map +1 -0
- package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts +7 -0
- package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/balloon-blaster/components/GameControls.d.ts +10 -0
- package/lib/typescript/src/games/balloon-blaster/components/GameControls.d.ts.map +1 -0
- package/lib/typescript/src/games/balloon-blaster/components/GameOverModal.d.ts +9 -0
- package/lib/typescript/src/games/balloon-blaster/components/GameOverModal.d.ts.map +1 -0
- package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts +8 -0
- package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts.map +1 -0
- package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts +9 -0
- package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/balloon-blaster/components/SliceTrail.d.ts +11 -0
- package/lib/typescript/src/games/balloon-blaster/components/SliceTrail.d.ts.map +1 -0
- package/lib/typescript/src/games/balloon-blaster/components/index.d.ts +9 -0
- package/lib/typescript/src/games/balloon-blaster/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/cat-popper/CatPopper.d.ts +13 -0
- package/lib/typescript/src/games/cat-popper/CatPopper.d.ts.map +1 -0
- package/lib/typescript/src/games/cat-popper/CatPopperService.d.ts +32 -0
- package/lib/typescript/src/games/cat-popper/CatPopperService.d.ts.map +1 -0
- package/lib/typescript/src/games/cat-popper/CatPopperStore.d.ts +21 -0
- package/lib/typescript/src/games/cat-popper/CatPopperStore.d.ts.map +1 -0
- package/lib/typescript/src/games/cat-popper/components/CatCharacter.d.ts +7 -0
- package/lib/typescript/src/games/cat-popper/components/CatCharacter.d.ts.map +1 -0
- package/lib/typescript/src/games/cat-popper/components/GameBackground.d.ts +7 -0
- package/lib/typescript/src/games/cat-popper/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/cat-popper/components/GameControls.d.ts +10 -0
- package/lib/typescript/src/games/cat-popper/components/GameControls.d.ts.map +1 -0
- package/lib/typescript/src/games/cat-popper/components/GameGrid.d.ts +13 -0
- package/lib/typescript/src/games/cat-popper/components/GameGrid.d.ts.map +1 -0
- package/lib/typescript/src/games/cat-popper/components/GameHole.d.ts +12 -0
- package/lib/typescript/src/games/cat-popper/components/GameHole.d.ts.map +1 -0
- package/lib/typescript/src/games/cat-popper/components/GameOverModal.d.ts +9 -0
- package/lib/typescript/src/games/cat-popper/components/GameOverModal.d.ts.map +1 -0
- package/lib/typescript/src/games/cat-popper/components/ScoreBoard.d.ts +8 -0
- package/lib/typescript/src/games/cat-popper/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/cat-popper/components/index.d.ts +8 -0
- package/lib/typescript/src/games/cat-popper/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-slicer/FruitSlicer.d.ts +16 -0
- package/lib/typescript/src/games/fruit-slicer/FruitSlicer.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-slicer/FruitSlicerService.d.ts +67 -0
- package/lib/typescript/src/games/fruit-slicer/FruitSlicerService.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-slicer/FruitSlicerStore.d.ts +37 -0
- package/lib/typescript/src/games/fruit-slicer/FruitSlicerStore.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-slicer/components/FruitComponent.d.ts +10 -0
- package/lib/typescript/src/games/fruit-slicer/components/FruitComponent.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-slicer/components/GameArea.d.ts +17 -0
- package/lib/typescript/src/games/fruit-slicer/components/GameArea.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-slicer/components/GameBackground.d.ts +7 -0
- package/lib/typescript/src/games/fruit-slicer/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-slicer/components/GameControls.d.ts +10 -0
- package/lib/typescript/src/games/fruit-slicer/components/GameControls.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-slicer/components/GameOverModal.d.ts +9 -0
- package/lib/typescript/src/games/fruit-slicer/components/GameOverModal.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-slicer/components/ParticleSystem.d.ts +8 -0
- package/lib/typescript/src/games/fruit-slicer/components/ParticleSystem.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-slicer/components/ScoreBoard.d.ts +9 -0
- package/lib/typescript/src/games/fruit-slicer/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-slicer/components/SliceTrail.d.ts +11 -0
- package/lib/typescript/src/games/fruit-slicer/components/SliceTrail.d.ts.map +1 -0
- package/lib/typescript/src/games/fruit-slicer/components/index.d.ts +9 -0
- package/lib/typescript/src/games/fruit-slicer/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +18 -0
- package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -0
- package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts +82 -0
- package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts.map +1 -0
- package/lib/typescript/src/games/maze-runner/components/EnhancedBallComponent.d.ts +11 -0
- package/lib/typescript/src/games/maze-runner/components/EnhancedBallComponent.d.ts.map +1 -0
- package/lib/typescript/src/games/maze-runner/components/EnhancedGameArea.d.ts +12 -0
- package/lib/typescript/src/games/maze-runner/components/EnhancedGameArea.d.ts.map +1 -0
- package/lib/typescript/src/games/maze-runner/components/GameBackground.d.ts +7 -0
- package/lib/typescript/src/games/maze-runner/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/maze-runner/components/GameControls.d.ts +10 -0
- package/lib/typescript/src/games/maze-runner/components/GameControls.d.ts.map +1 -0
- package/lib/typescript/src/games/maze-runner/components/GameOverModal.d.ts +11 -0
- package/lib/typescript/src/games/maze-runner/components/GameOverModal.d.ts.map +1 -0
- package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts +8 -0
- package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/maze-runner/components/SkiaPipeComponent.d.ts +25 -0
- package/lib/typescript/src/games/maze-runner/components/SkiaPipeComponent.d.ts.map +1 -0
- package/lib/typescript/src/games/maze-runner/components/StaticGameBackground.d.ts +7 -0
- package/lib/typescript/src/games/maze-runner/components/StaticGameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/maze-runner/components/WallComponent.d.ts +10 -0
- package/lib/typescript/src/games/maze-runner/components/WallComponent.d.ts.map +1 -0
- package/lib/typescript/src/games/maze-runner/components/index.d.ts +8 -0
- package/lib/typescript/src/games/maze-runner/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/space-traveller/SpaceTraveller.d.ts +17 -0
- package/lib/typescript/src/games/space-traveller/SpaceTraveller.d.ts.map +1 -0
- package/lib/typescript/src/games/space-traveller/SpaceTravellerService.d.ts +65 -0
- package/lib/typescript/src/games/space-traveller/SpaceTravellerService.d.ts.map +1 -0
- package/lib/typescript/src/games/space-traveller/SpaceTravellerStore.d.ts +35 -0
- package/lib/typescript/src/games/space-traveller/SpaceTravellerStore.d.ts.map +1 -0
- package/lib/typescript/src/games/space-traveller/components/AsteroidComponent.d.ts +9 -0
- package/lib/typescript/src/games/space-traveller/components/AsteroidComponent.d.ts.map +1 -0
- package/lib/typescript/src/games/space-traveller/components/GameArea.d.ts +17 -0
- package/lib/typescript/src/games/space-traveller/components/GameArea.d.ts.map +1 -0
- package/lib/typescript/src/games/space-traveller/components/GameBackground.d.ts +7 -0
- package/lib/typescript/src/games/space-traveller/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/space-traveller/components/GameControls.d.ts +10 -0
- package/lib/typescript/src/games/space-traveller/components/GameControls.d.ts.map +1 -0
- package/lib/typescript/src/games/space-traveller/components/GameOverModal.d.ts +9 -0
- package/lib/typescript/src/games/space-traveller/components/GameOverModal.d.ts.map +1 -0
- package/lib/typescript/src/games/space-traveller/components/ParticleComponent.d.ts +8 -0
- package/lib/typescript/src/games/space-traveller/components/ParticleComponent.d.ts.map +1 -0
- package/lib/typescript/src/games/space-traveller/components/ScoreBoard.d.ts +8 -0
- package/lib/typescript/src/games/space-traveller/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/space-traveller/components/SettingsModal.d.ts +9 -0
- package/lib/typescript/src/games/space-traveller/components/SettingsModal.d.ts.map +1 -0
- package/lib/typescript/src/games/space-traveller/components/Spacecraft3D.d.ts +9 -0
- package/lib/typescript/src/games/space-traveller/components/Spacecraft3D.d.ts.map +1 -0
- package/lib/typescript/src/games/space-traveller/components/SpacecraftPath.d.ts +10 -0
- package/lib/typescript/src/games/space-traveller/components/SpacecraftPath.d.ts.map +1 -0
- package/lib/typescript/src/games/space-traveller/components/index.d.ts +11 -0
- package/lib/typescript/src/games/space-traveller/components/index.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +7 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/services/GamesConstants.d.ts +372 -0
- package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -0
- package/lib/typescript/src/services/GamesService.d.ts +8 -0
- package/lib/typescript/src/services/GamesService.d.ts.map +1 -0
- package/lib/typescript/src/shared/settings/GameSettings.d.ts +36 -0
- package/lib/typescript/src/shared/settings/GameSettings.d.ts.map +1 -0
- package/lib/typescript/src/shared/settings/SettingsService.d.ts +32 -0
- package/lib/typescript/src/shared/settings/SettingsService.d.ts.map +1 -0
- package/package.json +125 -0
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { View, Text, ScrollView, TouchableOpacity, Switch, StyleSheet } from 'react-native';
|
|
5
|
+
import { getGameTheme, getGameDifficultyDescriptions, getGameTitle } from "../../services/GamesConstants.js";
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
export const GameSettings = ({
|
|
8
|
+
gameId,
|
|
9
|
+
onClose,
|
|
10
|
+
settingsStore
|
|
11
|
+
}) => {
|
|
12
|
+
const theme = getGameTheme(gameId);
|
|
13
|
+
const difficultyDescriptions = getGameDifficultyDescriptions(gameId);
|
|
14
|
+
const title = `${getGameTitle(gameId)} Settings`;
|
|
15
|
+
const {
|
|
16
|
+
difficulty,
|
|
17
|
+
soundEnabled,
|
|
18
|
+
hapticEnabled
|
|
19
|
+
} = settingsStore;
|
|
20
|
+
const handleDifficultyChange = newDifficulty => {
|
|
21
|
+
if (settingsStore.setDifficulty) {
|
|
22
|
+
settingsStore.setDifficulty(newDifficulty);
|
|
23
|
+
} else if (settingsStore.updateSettings) {
|
|
24
|
+
settingsStore.updateSettings({
|
|
25
|
+
difficulty: newDifficulty
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const handleSoundToggle = enabled => {
|
|
30
|
+
if (settingsStore.setSoundEnabled) {
|
|
31
|
+
settingsStore.setSoundEnabled(enabled);
|
|
32
|
+
} else if (settingsStore.updateSettings) {
|
|
33
|
+
settingsStore.updateSettings({
|
|
34
|
+
soundEnabled: enabled
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const handleHapticToggle = enabled => {
|
|
39
|
+
if (settingsStore.setHapticEnabled) {
|
|
40
|
+
settingsStore.setHapticEnabled(enabled);
|
|
41
|
+
} else if (settingsStore.updateSettings) {
|
|
42
|
+
settingsStore.updateSettings({
|
|
43
|
+
hapticEnabled: enabled
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
const handleResetDefaults = () => {
|
|
48
|
+
settingsStore.resetToDefaults();
|
|
49
|
+
};
|
|
50
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
51
|
+
style: [styles.container, {
|
|
52
|
+
backgroundColor: theme.backgroundColor
|
|
53
|
+
}],
|
|
54
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
55
|
+
style: [styles.header, {
|
|
56
|
+
backgroundColor: theme.headerBackgroundColor
|
|
57
|
+
}],
|
|
58
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
59
|
+
style: [styles.headerTitle, {
|
|
60
|
+
color: theme.headerTextColor
|
|
61
|
+
}],
|
|
62
|
+
children: title
|
|
63
|
+
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
64
|
+
onPress: onClose,
|
|
65
|
+
style: styles.closeButton,
|
|
66
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
67
|
+
style: [styles.closeButtonText, {
|
|
68
|
+
color: theme.headerTextColor
|
|
69
|
+
}],
|
|
70
|
+
children: "\u2715"
|
|
71
|
+
})
|
|
72
|
+
})]
|
|
73
|
+
}), /*#__PURE__*/_jsxs(ScrollView, {
|
|
74
|
+
style: styles.scrollView,
|
|
75
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
76
|
+
style: [styles.section, {
|
|
77
|
+
backgroundColor: theme.sectionBackgroundColor
|
|
78
|
+
}],
|
|
79
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
80
|
+
style: [styles.sectionTitle, {
|
|
81
|
+
color: theme.sectionTitleColor
|
|
82
|
+
}],
|
|
83
|
+
children: "Difficulty Level"
|
|
84
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
85
|
+
style: styles.difficultyRow,
|
|
86
|
+
children: ['easy', 'medium', 'hard'].map(level => /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
87
|
+
onPress: () => handleDifficultyChange(level),
|
|
88
|
+
style: [styles.difficultyButton, {
|
|
89
|
+
backgroundColor: difficulty === level ? theme.buttonSelectedColor : theme.buttonUnselectedColor
|
|
90
|
+
}],
|
|
91
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
92
|
+
style: [styles.buttonText, styles.capitalize, {
|
|
93
|
+
color: difficulty === level ? theme.buttonSelectedTextColor : theme.buttonUnselectedTextColor
|
|
94
|
+
}],
|
|
95
|
+
children: level
|
|
96
|
+
})
|
|
97
|
+
}, level))
|
|
98
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
99
|
+
style: styles.infoBox,
|
|
100
|
+
children: /*#__PURE__*/_jsxs(Text, {
|
|
101
|
+
style: [styles.infoText, {
|
|
102
|
+
color: theme.infoTextColor
|
|
103
|
+
}],
|
|
104
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
105
|
+
style: styles.boldText,
|
|
106
|
+
children: "Easy:"
|
|
107
|
+
}), " ", difficultyDescriptions.easy, '\n', /*#__PURE__*/_jsx(Text, {
|
|
108
|
+
style: styles.boldText,
|
|
109
|
+
children: "Medium:"
|
|
110
|
+
}), " ", difficultyDescriptions.medium, '\n', /*#__PURE__*/_jsx(Text, {
|
|
111
|
+
style: styles.boldText,
|
|
112
|
+
children: "Hard:"
|
|
113
|
+
}), " ", difficultyDescriptions.hard]
|
|
114
|
+
})
|
|
115
|
+
})]
|
|
116
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
117
|
+
style: [styles.section, {
|
|
118
|
+
backgroundColor: theme.sectionBackgroundColor
|
|
119
|
+
}],
|
|
120
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
121
|
+
style: styles.toggleContainer,
|
|
122
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
123
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
124
|
+
style: [styles.toggleTitle, {
|
|
125
|
+
color: theme.sectionTitleColor
|
|
126
|
+
}],
|
|
127
|
+
children: "Sound Effects"
|
|
128
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
129
|
+
style: [styles.toggleSubtitle, {
|
|
130
|
+
color: theme.infoTextColor
|
|
131
|
+
}],
|
|
132
|
+
children: "Play sounds during gameplay"
|
|
133
|
+
})]
|
|
134
|
+
}), /*#__PURE__*/_jsx(Switch, {
|
|
135
|
+
value: soundEnabled,
|
|
136
|
+
onValueChange: handleSoundToggle,
|
|
137
|
+
trackColor: {
|
|
138
|
+
false: theme.switchTrackColorFalse,
|
|
139
|
+
true: theme.switchTrackColorTrue
|
|
140
|
+
},
|
|
141
|
+
thumbColor: theme.switchThumbColor
|
|
142
|
+
})]
|
|
143
|
+
})
|
|
144
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
145
|
+
style: [styles.section, {
|
|
146
|
+
backgroundColor: theme.sectionBackgroundColor
|
|
147
|
+
}],
|
|
148
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
149
|
+
style: styles.toggleContainer,
|
|
150
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
151
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
152
|
+
style: [styles.toggleTitle, {
|
|
153
|
+
color: theme.sectionTitleColor
|
|
154
|
+
}],
|
|
155
|
+
children: "Haptic Feedback"
|
|
156
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
157
|
+
style: [styles.toggleSubtitle, {
|
|
158
|
+
color: theme.infoTextColor
|
|
159
|
+
}],
|
|
160
|
+
children: "Vibration feedback for interactions"
|
|
161
|
+
})]
|
|
162
|
+
}), /*#__PURE__*/_jsx(Switch, {
|
|
163
|
+
value: hapticEnabled,
|
|
164
|
+
onValueChange: handleHapticToggle,
|
|
165
|
+
trackColor: {
|
|
166
|
+
false: theme.switchTrackColorFalse,
|
|
167
|
+
true: theme.switchTrackColorTrue
|
|
168
|
+
},
|
|
169
|
+
thumbColor: theme.switchThumbColor
|
|
170
|
+
})]
|
|
171
|
+
})
|
|
172
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
173
|
+
style: styles.resetSection,
|
|
174
|
+
children: [/*#__PURE__*/_jsx(TouchableOpacity, {
|
|
175
|
+
onPress: handleResetDefaults,
|
|
176
|
+
style: [styles.resetButton, {
|
|
177
|
+
backgroundColor: theme.resetButtonColor
|
|
178
|
+
}],
|
|
179
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
180
|
+
style: [styles.resetButtonText, {
|
|
181
|
+
color: theme.resetButtonTextColor
|
|
182
|
+
}],
|
|
183
|
+
children: "Reset to Defaults"
|
|
184
|
+
})
|
|
185
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
186
|
+
style: [styles.resetDescription, {
|
|
187
|
+
color: theme.infoTextColor
|
|
188
|
+
}],
|
|
189
|
+
children: "This will restore all settings to their original values"
|
|
190
|
+
})]
|
|
191
|
+
})]
|
|
192
|
+
})]
|
|
193
|
+
});
|
|
194
|
+
};
|
|
195
|
+
const styles = StyleSheet.create({
|
|
196
|
+
container: {
|
|
197
|
+
flex: 1
|
|
198
|
+
},
|
|
199
|
+
header: {
|
|
200
|
+
flexDirection: 'row',
|
|
201
|
+
justifyContent: 'space-between',
|
|
202
|
+
alignItems: 'center',
|
|
203
|
+
padding: 16
|
|
204
|
+
},
|
|
205
|
+
headerTitle: {
|
|
206
|
+
fontSize: 20,
|
|
207
|
+
fontWeight: 'bold'
|
|
208
|
+
},
|
|
209
|
+
closeButton: {
|
|
210
|
+
padding: 8
|
|
211
|
+
},
|
|
212
|
+
closeButtonText: {
|
|
213
|
+
fontSize: 18,
|
|
214
|
+
fontWeight: 'bold'
|
|
215
|
+
},
|
|
216
|
+
scrollView: {
|
|
217
|
+
flex: 1,
|
|
218
|
+
padding: 16
|
|
219
|
+
},
|
|
220
|
+
section: {
|
|
221
|
+
borderRadius: 12,
|
|
222
|
+
padding: 16,
|
|
223
|
+
marginBottom: 16
|
|
224
|
+
},
|
|
225
|
+
sectionTitle: {
|
|
226
|
+
fontSize: 18,
|
|
227
|
+
fontWeight: 'bold',
|
|
228
|
+
marginBottom: 12
|
|
229
|
+
},
|
|
230
|
+
difficultyRow: {
|
|
231
|
+
flexDirection: 'row',
|
|
232
|
+
justifyContent: 'space-between',
|
|
233
|
+
marginBottom: 12
|
|
234
|
+
},
|
|
235
|
+
difficultyButton: {
|
|
236
|
+
flex: 1,
|
|
237
|
+
paddingVertical: 12,
|
|
238
|
+
paddingHorizontal: 8,
|
|
239
|
+
borderRadius: 8,
|
|
240
|
+
marginHorizontal: 4,
|
|
241
|
+
alignItems: 'center'
|
|
242
|
+
},
|
|
243
|
+
buttonText: {
|
|
244
|
+
fontSize: 16,
|
|
245
|
+
fontWeight: '600'
|
|
246
|
+
},
|
|
247
|
+
capitalize: {
|
|
248
|
+
textTransform: 'capitalize'
|
|
249
|
+
},
|
|
250
|
+
infoBox: {
|
|
251
|
+
backgroundColor: 'rgba(255, 255, 255, 0.1)',
|
|
252
|
+
borderRadius: 8,
|
|
253
|
+
padding: 12
|
|
254
|
+
},
|
|
255
|
+
infoText: {
|
|
256
|
+
fontSize: 14,
|
|
257
|
+
lineHeight: 20
|
|
258
|
+
},
|
|
259
|
+
boldText: {
|
|
260
|
+
fontWeight: 'bold'
|
|
261
|
+
},
|
|
262
|
+
toggleContainer: {
|
|
263
|
+
flexDirection: 'row',
|
|
264
|
+
justifyContent: 'space-between',
|
|
265
|
+
alignItems: 'center'
|
|
266
|
+
},
|
|
267
|
+
toggleTitle: {
|
|
268
|
+
fontSize: 16,
|
|
269
|
+
fontWeight: '600'
|
|
270
|
+
},
|
|
271
|
+
toggleSubtitle: {
|
|
272
|
+
fontSize: 14,
|
|
273
|
+
marginTop: 2
|
|
274
|
+
},
|
|
275
|
+
resetSection: {
|
|
276
|
+
alignItems: 'center',
|
|
277
|
+
marginTop: 8
|
|
278
|
+
},
|
|
279
|
+
resetButton: {
|
|
280
|
+
paddingVertical: 12,
|
|
281
|
+
paddingHorizontal: 24,
|
|
282
|
+
borderRadius: 8,
|
|
283
|
+
marginBottom: 8
|
|
284
|
+
},
|
|
285
|
+
resetButtonText: {
|
|
286
|
+
fontSize: 16,
|
|
287
|
+
fontWeight: '600'
|
|
288
|
+
},
|
|
289
|
+
resetDescription: {
|
|
290
|
+
fontSize: 12,
|
|
291
|
+
textAlign: 'center'
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
export default GameSettings;
|
|
295
|
+
//# sourceMappingURL=GameSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","Text","ScrollView","TouchableOpacity","Switch","StyleSheet","getGameTheme","getGameDifficultyDescriptions","getGameTitle","jsx","_jsx","jsxs","_jsxs","GameSettings","gameId","onClose","settingsStore","theme","difficultyDescriptions","title","difficulty","soundEnabled","hapticEnabled","handleDifficultyChange","newDifficulty","setDifficulty","updateSettings","handleSoundToggle","enabled","setSoundEnabled","handleHapticToggle","setHapticEnabled","handleResetDefaults","resetToDefaults","style","styles","container","backgroundColor","children","header","headerBackgroundColor","headerTitle","color","headerTextColor","onPress","closeButton","closeButtonText","scrollView","section","sectionBackgroundColor","sectionTitle","sectionTitleColor","difficultyRow","map","level","difficultyButton","buttonSelectedColor","buttonUnselectedColor","buttonText","capitalize","buttonSelectedTextColor","buttonUnselectedTextColor","infoBox","infoText","infoTextColor","boldText","easy","medium","hard","toggleContainer","toggleTitle","toggleSubtitle","value","onValueChange","trackColor","false","switchTrackColorFalse","true","switchTrackColorTrue","thumbColor","switchThumbColor","resetSection","resetButton","resetButtonColor","resetButtonText","resetButtonTextColor","resetDescription","create","flex","flexDirection","justifyContent","alignItems","padding","fontSize","fontWeight","borderRadius","marginBottom","paddingVertical","paddingHorizontal","marginHorizontal","textTransform","lineHeight","marginTop","textAlign"],"sourceRoot":"../../../../src","sources":["shared/settings/GameSettings.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { create } from 'zustand';
|
|
4
|
+
|
|
5
|
+
// Simplified game settings interface - only the essentials
|
|
6
|
+
|
|
7
|
+
// Game duration constants
|
|
8
|
+
export const GAME_DURATIONS = {
|
|
9
|
+
easy: 60,
|
|
10
|
+
// 1 minute
|
|
11
|
+
medium: 120,
|
|
12
|
+
// 2 minutes
|
|
13
|
+
hard: 180 // 3 minutes
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
// Helper function to get duration based on difficulty
|
|
17
|
+
export const getDurationForDifficulty = difficulty => {
|
|
18
|
+
return GAME_DURATIONS[difficulty];
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
// Default settings that work for all games
|
|
22
|
+
export const DEFAULT_GAME_SETTINGS = {
|
|
23
|
+
difficulty: 'medium',
|
|
24
|
+
soundEnabled: true,
|
|
25
|
+
hapticEnabled: true
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
// Store interface with actions
|
|
29
|
+
|
|
30
|
+
// Factory function to create game-specific settings store
|
|
31
|
+
export const createGameSettingsStore = (initialSettings = {}, onSettingsChange) => {
|
|
32
|
+
const mergedSettings = {
|
|
33
|
+
...DEFAULT_GAME_SETTINGS,
|
|
34
|
+
...initialSettings
|
|
35
|
+
};
|
|
36
|
+
return create((set, get) => ({
|
|
37
|
+
...mergedSettings,
|
|
38
|
+
// Computed game duration based on difficulty
|
|
39
|
+
get gameDuration() {
|
|
40
|
+
return getDurationForDifficulty(get().difficulty);
|
|
41
|
+
},
|
|
42
|
+
setDifficulty: difficulty => {
|
|
43
|
+
set({
|
|
44
|
+
difficulty
|
|
45
|
+
});
|
|
46
|
+
if (onSettingsChange) {
|
|
47
|
+
const currentState = get();
|
|
48
|
+
onSettingsChange({
|
|
49
|
+
difficulty: currentState.difficulty,
|
|
50
|
+
soundEnabled: currentState.soundEnabled,
|
|
51
|
+
hapticEnabled: currentState.hapticEnabled,
|
|
52
|
+
gameDuration: currentState.gameDuration
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
setSoundEnabled: soundEnabled => {
|
|
57
|
+
set({
|
|
58
|
+
soundEnabled
|
|
59
|
+
});
|
|
60
|
+
if (onSettingsChange) {
|
|
61
|
+
const currentState = get();
|
|
62
|
+
onSettingsChange({
|
|
63
|
+
difficulty: currentState.difficulty,
|
|
64
|
+
soundEnabled: currentState.soundEnabled,
|
|
65
|
+
hapticEnabled: currentState.hapticEnabled,
|
|
66
|
+
gameDuration: currentState.gameDuration
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
setHapticEnabled: hapticEnabled => {
|
|
71
|
+
set({
|
|
72
|
+
hapticEnabled
|
|
73
|
+
});
|
|
74
|
+
if (onSettingsChange) {
|
|
75
|
+
const currentState = get();
|
|
76
|
+
onSettingsChange({
|
|
77
|
+
difficulty: currentState.difficulty,
|
|
78
|
+
soundEnabled: currentState.soundEnabled,
|
|
79
|
+
hapticEnabled: currentState.hapticEnabled,
|
|
80
|
+
gameDuration: currentState.gameDuration
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
updateSettings: settings => {
|
|
85
|
+
set(settings);
|
|
86
|
+
if (onSettingsChange) {
|
|
87
|
+
const currentState = get();
|
|
88
|
+
onSettingsChange({
|
|
89
|
+
difficulty: currentState.difficulty,
|
|
90
|
+
soundEnabled: currentState.soundEnabled,
|
|
91
|
+
hapticEnabled: currentState.hapticEnabled,
|
|
92
|
+
gameDuration: currentState.gameDuration
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
resetToDefaults: () => {
|
|
97
|
+
const defaultSettings = {
|
|
98
|
+
...DEFAULT_GAME_SETTINGS
|
|
99
|
+
};
|
|
100
|
+
set(defaultSettings);
|
|
101
|
+
if (onSettingsChange) {
|
|
102
|
+
onSettingsChange({
|
|
103
|
+
...defaultSettings,
|
|
104
|
+
gameDuration: getDurationForDifficulty(defaultSettings.difficulty)
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}));
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
// Export game IDs for consistency
|
|
112
|
+
export const GAME_IDS = {
|
|
113
|
+
WHACK_IT: 'whack-it',
|
|
114
|
+
FRUIT_NINJA: 'fruit-ninja',
|
|
115
|
+
BALLOON_BLASTER: 'balloon-blaster',
|
|
116
|
+
SPACE_CRAFT: 'space-craft',
|
|
117
|
+
MAZE_RUNNER: 'maze-runner'
|
|
118
|
+
};
|
|
119
|
+
//# sourceMappingURL=SettingsService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["create","GAME_DURATIONS","easy","medium","hard","getDurationForDifficulty","difficulty","DEFAULT_GAME_SETTINGS","soundEnabled","hapticEnabled","createGameSettingsStore","initialSettings","onSettingsChange","mergedSettings","set","get","gameDuration","setDifficulty","currentState","setSoundEnabled","setHapticEnabled","updateSettings","settings","resetToDefaults","defaultSettings","GAME_IDS","WHACK_IT","FRUIT_NINJA","BALLOON_BLASTER","SPACE_CRAFT","MAZE_RUNNER"],"sourceRoot":"../../../../src","sources":["shared/settings/SettingsService.tsx"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,SAAS;;AAEhC;;AAOA;AACA,OAAO,MAAMC,cAAc,GAAG;EAC5BC,IAAI,EAAE,EAAE;EAAK;EACbC,MAAM,EAAE,GAAG;EAAE;EACbC,IAAI,EAAE,GAAG,CAAI;AACf,CAAU;;AAEV;AACA,OAAO,MAAMC,wBAAwB,GAAIC,UAAsC,IAAa;EAC1F,OAAOL,cAAc,CAACK,UAAU,CAAC;AACnC,CAAC;;AAED;AACA,OAAO,MAAMC,qBAAmC,GAAG;EACjDD,UAAU,EAAE,QAAQ;EACpBE,YAAY,EAAE,IAAI;EAClBC,aAAa,EAAE;AACjB,CAAC;;AAED;;AAaA;AACA,OAAO,MAAMC,uBAAuB,GAAGA,CACrCC,eAAsC,GAAG,CAAC,CAAC,EAC3CC,gBAA8E,KAC3E;EACH,MAAMC,cAAc,GAAG;IAAE,GAAGN,qBAAqB;IAAE,GAAGI;EAAgB,CAAC;EAEvE,OAAOX,MAAM,CAAoB,CAACc,GAAG,EAAEC,GAAG,MAAM;IAC9C,GAAGF,cAAc;IAEjB;IACA,IAAIG,YAAYA,CAAA,EAAG;MACjB,OAAOX,wBAAwB,CAACU,GAAG,CAAC,CAAC,CAACT,UAAU,CAAC;IACnD,CAAC;IAEDW,aAAa,EAAGX,UAAU,IAAK;MAC7BQ,GAAG,CAAC;QAAER;MAAW,CAAC,CAAC;MACnB,IAAIM,gBAAgB,EAAE;QACpB,MAAMM,YAAY,GAAGH,GAAG,CAAC,CAAC;QAC1BH,gBAAgB,CAAC;UACfN,UAAU,EAAEY,YAAY,CAACZ,UAAU;UACnCE,YAAY,EAAEU,YAAY,CAACV,YAAY;UACvCC,aAAa,EAAES,YAAY,CAACT,aAAa;UACzCO,YAAY,EAAEE,YAAY,CAACF;QAC7B,CAAC,CAAC;MACJ;IACF,CAAC;IAEDG,eAAe,EAAGX,YAAY,IAAK;MACjCM,GAAG,CAAC;QAAEN;MAAa,CAAC,CAAC;MACrB,IAAII,gBAAgB,EAAE;QACpB,MAAMM,YAAY,GAAGH,GAAG,CAAC,CAAC;QAC1BH,gBAAgB,CAAC;UACfN,UAAU,EAAEY,YAAY,CAACZ,UAAU;UACnCE,YAAY,EAAEU,YAAY,CAACV,YAAY;UACvCC,aAAa,EAAES,YAAY,CAACT,aAAa;UACzCO,YAAY,EAAEE,YAAY,CAACF;QAC7B,CAAC,CAAC;MACJ;IACF,CAAC;IAEDI,gBAAgB,EAAGX,aAAa,IAAK;MACnCK,GAAG,CAAC;QAAEL;MAAc,CAAC,CAAC;MACtB,IAAIG,gBAAgB,EAAE;QACpB,MAAMM,YAAY,GAAGH,GAAG,CAAC,CAAC;QAC1BH,gBAAgB,CAAC;UACfN,UAAU,EAAEY,YAAY,CAACZ,UAAU;UACnCE,YAAY,EAAEU,YAAY,CAACV,YAAY;UACvCC,aAAa,EAAES,YAAY,CAACT,aAAa;UACzCO,YAAY,EAAEE,YAAY,CAACF;QAC7B,CAAC,CAAC;MACJ;IACF,CAAC;IAEDK,cAAc,EAAGC,QAAQ,IAAK;MAC5BR,GAAG,CAACQ,QAAQ,CAAC;MACb,IAAIV,gBAAgB,EAAE;QACpB,MAAMM,YAAY,GAAGH,GAAG,CAAC,CAAC;QAC1BH,gBAAgB,CAAC;UACfN,UAAU,EAAEY,YAAY,CAACZ,UAAU;UACnCE,YAAY,EAAEU,YAAY,CAACV,YAAY;UACvCC,aAAa,EAAES,YAAY,CAACT,aAAa;UACzCO,YAAY,EAAEE,YAAY,CAACF;QAC7B,CAAC,CAAC;MACJ;IACF,CAAC;IAEDO,eAAe,EAAEA,CAAA,KAAM;MACrB,MAAMC,eAAe,GAAG;QAAE,GAAGjB;MAAsB,CAAC;MACpDO,GAAG,CAACU,eAAe,CAAC;MACpB,IAAIZ,gBAAgB,EAAE;QACpBA,gBAAgB,CAAC;UACf,GAAGY,eAAe;UAClBR,YAAY,EAAEX,wBAAwB,CAACmB,eAAe,CAAClB,UAAU;QACnE,CAAC,CAAC;MACJ;IACF;EACF,CAAC,CAAC,CAAC;AACL,CAAC;;AAED;AACA,OAAO,MAAMmB,QAAQ,GAAG;EACtBC,QAAQ,EAAE,UAAU;EACpBC,WAAW,EAAE,aAAa;EAC1BC,eAAe,EAAE,iBAAiB;EAClCC,WAAW,EAAE,aAAa;EAC1BC,WAAW,EAAE;AACf,CAAU","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface BalloonBlasterGameSettings {
|
|
3
|
+
gameDuration: number;
|
|
4
|
+
difficulty: 'easy' | 'medium' | 'hard';
|
|
5
|
+
soundEnabled: boolean;
|
|
6
|
+
hapticEnabled: boolean;
|
|
7
|
+
}
|
|
8
|
+
interface BalloonBlasterProps {
|
|
9
|
+
settings?: BalloonBlasterGameSettings;
|
|
10
|
+
onSettingsChange?: (settings: BalloonBlasterGameSettings) => void;
|
|
11
|
+
showSettingsModal?: boolean;
|
|
12
|
+
onToggleSettingsModal?: () => void;
|
|
13
|
+
}
|
|
14
|
+
export declare const BalloonBlaster: React.FC<BalloonBlasterProps>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=BalloonBlaster.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BalloonBlaster.d.ts","sourceRoot":"","sources":["../../../../../src/games/balloon-blaster/BalloonBlaster.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAUjD,UAAU,0BAA0B;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACvC,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;CACxB;AAgBD,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,EAAE,0BAA0B,CAAC;IACtC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,0BAA0B,KAAK,IAAI,CAAC;IAClE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;CACpC;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAwWxD,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
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 '../../services/GamesConstants';
|
|
2
|
+
export { GAME_CONFIG, ANIMATION_CONFIG, COLORS, BALLOON_TYPES, SPECIAL_ITEMS };
|
|
3
|
+
export interface Balloon {
|
|
4
|
+
id: string;
|
|
5
|
+
type: (typeof BALLOON_TYPES)[number] | (typeof SPECIAL_ITEMS)[number];
|
|
6
|
+
position: {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
};
|
|
10
|
+
velocity: {
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
};
|
|
14
|
+
rotation: number;
|
|
15
|
+
rotationSpeed: number;
|
|
16
|
+
isPopped: boolean;
|
|
17
|
+
popTime?: number;
|
|
18
|
+
spawnTime: number;
|
|
19
|
+
isBomb?: boolean;
|
|
20
|
+
isBonus?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface Particle {
|
|
23
|
+
id: string;
|
|
24
|
+
position: {
|
|
25
|
+
x: number;
|
|
26
|
+
y: number;
|
|
27
|
+
};
|
|
28
|
+
velocity: {
|
|
29
|
+
x: number;
|
|
30
|
+
y: number;
|
|
31
|
+
};
|
|
32
|
+
color: string;
|
|
33
|
+
size: number;
|
|
34
|
+
lifetime: number;
|
|
35
|
+
maxLifetime: number;
|
|
36
|
+
}
|
|
37
|
+
export declare class BalloonBlasterService {
|
|
38
|
+
private balloonAnimations;
|
|
39
|
+
private particleAnimations;
|
|
40
|
+
private gameTimerRef;
|
|
41
|
+
private balloonSpawnRef;
|
|
42
|
+
private animationRef;
|
|
43
|
+
private comboTimeoutRef;
|
|
44
|
+
private particles;
|
|
45
|
+
constructor(balloonAnimations: Map<string, any>, particleAnimations: Map<string, any>);
|
|
46
|
+
startGameTimer(onTick: () => void): void;
|
|
47
|
+
startBalloonSpawning(spawnBalloon: (balloon: Balloon) => void, customSpawnInterval?: number): void;
|
|
48
|
+
startPhysicsLoop(updateBalloon: (balloonId: string, updates: Partial<Balloon>) => void, removeBalloon: (balloonId: string) => void, getBalloons: () => Balloon[]): void;
|
|
49
|
+
createRandomBalloon(): Balloon;
|
|
50
|
+
createPopParticles(balloon: Balloon): Particle[];
|
|
51
|
+
private updateParticles;
|
|
52
|
+
getParticles(): Particle[];
|
|
53
|
+
checkBalloonPop(balloon: Balloon, slicePath: {
|
|
54
|
+
x: number;
|
|
55
|
+
y: number;
|
|
56
|
+
}[]): boolean;
|
|
57
|
+
private distanceFromPointToLine;
|
|
58
|
+
resetAnimations(): void;
|
|
59
|
+
cleanup(): void;
|
|
60
|
+
private clearGameTimer;
|
|
61
|
+
private clearBalloonSpawn;
|
|
62
|
+
private clearAnimationLoop;
|
|
63
|
+
private clearComboTimeout;
|
|
64
|
+
}
|
|
65
|
+
export declare const createBalloonBlasterService: (balloonAnimations: Map<string, any>, particleAnimations: Map<string, any>) => BalloonBlasterService;
|
|
66
|
+
//# sourceMappingURL=BalloonBlasterService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BalloonBlasterService.d.ts","sourceRoot":"","sources":["../../../../../src/games/balloon-blaster/BalloonBlasterService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Balloon } from './BalloonBlasterService';
|
|
2
|
+
export interface GameState {
|
|
3
|
+
score: number;
|
|
4
|
+
timeLeft: number;
|
|
5
|
+
isPlaying: boolean;
|
|
6
|
+
gameOver: boolean;
|
|
7
|
+
combo: number;
|
|
8
|
+
lives: number;
|
|
9
|
+
}
|
|
10
|
+
export interface BalloonBlasterStore extends GameState {
|
|
11
|
+
balloons: Balloon[];
|
|
12
|
+
slicePath: {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
}[];
|
|
16
|
+
isSlicing: boolean;
|
|
17
|
+
startGame: (gameDuration?: number) => void;
|
|
18
|
+
stopGame: () => void;
|
|
19
|
+
resetGame: () => void;
|
|
20
|
+
popBalloon: (balloonId: string) => void;
|
|
21
|
+
updateScore: (points: number) => void;
|
|
22
|
+
decrementTime: () => void;
|
|
23
|
+
addBalloon: (balloon: Balloon) => void;
|
|
24
|
+
removeBalloon: (balloonId: string) => void;
|
|
25
|
+
updateBalloon: (balloonId: string, updates: Partial<Balloon>) => void;
|
|
26
|
+
setSlicePath: (path: {
|
|
27
|
+
x: number;
|
|
28
|
+
y: number;
|
|
29
|
+
}[]) => void;
|
|
30
|
+
setIsSlicing: (isSlicing: boolean) => void;
|
|
31
|
+
incrementCombo: () => void;
|
|
32
|
+
resetCombo: () => void;
|
|
33
|
+
loseLife: () => void;
|
|
34
|
+
addLife: () => void;
|
|
35
|
+
}
|
|
36
|
+
export declare const useBalloonBlasterStore: import("zustand").UseBoundStore<import("zustand").StoreApi<BalloonBlasterStore>>;
|
|
37
|
+
//# sourceMappingURL=BalloonBlasterStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BalloonBlasterStore.d.ts","sourceRoot":"","sources":["../../../../../src/games/balloon-blaster/BalloonBlasterStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvD,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtC,SAAS,EAAE,OAAO,CAAC;IAGnB,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACtE,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,CAAC;IACzD,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,sBAAsB,kFA+IhC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { Balloon } from '../BalloonBlasterService';
|
|
3
|
+
interface BalloonComponentProps {
|
|
4
|
+
balloon: Balloon;
|
|
5
|
+
animation?: any;
|
|
6
|
+
onPop?: (balloonId: string) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const BalloonComponent: React.FC<BalloonComponentProps>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=BalloonComponent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BalloonComponent.d.ts","sourceRoot":"","sources":["../../../../../../src/games/balloon-blaster/components/BalloonComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AASzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAGxD,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA2P5D,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { Balloon, Particle } from '../BalloonBlasterService';
|
|
3
|
+
interface GameAreaProps {
|
|
4
|
+
balloons: Balloon[];
|
|
5
|
+
balloonAnimations: Map<string, any>;
|
|
6
|
+
slicePath: {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
}[];
|
|
10
|
+
isSlicing: boolean;
|
|
11
|
+
particles: Particle[];
|
|
12
|
+
onBalloonPop: (balloonId: string) => void;
|
|
13
|
+
children?: React.ReactNode;
|
|
14
|
+
}
|
|
15
|
+
export declare const GameArea: React.FC<GameAreaProps>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=GameArea.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GameArea.d.ts","sourceRoot":"","sources":["../../../../../../src/games/balloon-blaster/components/GameArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAKlE,UAAU,aAAa;IACrB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,SAAS,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAoB5C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GameBackground.d.ts","sourceRoot":"","sources":["../../../../../../src/games/balloon-blaster/components/GameBackground.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AA0BzC,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAuVxD,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface GameControlsProps {
|
|
3
|
+
isPlaying: boolean;
|
|
4
|
+
gameOver: boolean;
|
|
5
|
+
onStartGame: () => void;
|
|
6
|
+
onStopGame: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const GameControls: React.FC<GameControlsProps>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=GameControls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GameControls.d.ts","sourceRoot":"","sources":["../../../../../../src/games/balloon-blaster/components/GameControls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,UAAU,iBAAiB;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA6GpD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GameOverModal.d.ts","sourceRoot":"","sources":["../../../../../../src/games/balloon-blaster/components/GameOverModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,kBAAkB;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA6BtD,CAAC"}
|