match-three/assets/levels/levels.json
savinmax ea3f0c4e18 Add level system with progression and selection screen
- Add Level model with constraints, objectives, and star ratings
- Create LevelService for loading levels from JSON configuration
- Implement LevelSelectionScreen with visual progress tracking
- Update GameBloc to handle level-based gameplay
- Add 10 predefined levels with varying difficulty and objectives
- Integrate level progression system into game flow
2025-09-21 17:08:44 +02:00

113 lines
2.5 KiB
JSON

{
"levels": [
{
"id": 1,
"name": "Getting Started",
"description": "Learn the basics by reaching the target score",
"constraints": {
"targetScore": 1000
},
"objectives": {},
"starRating": {
"criteria": "SCORE",
"thresholds": {
"oneStar": 1000,
"twoStar": 1200,
"threeStar": 1500
}
},
"availableGemTypes": [0, 1, 2, 3, 4, 5],
"unlocked": true
},
{
"id": 2,
"name": "Move Master",
"description": "Reach the target score with limited moves",
"constraints": {
"targetScore": 1500,
"maxMoves": 20
},
"objectives": {},
"starRating": {
"criteria": "MOVES_REMAINING",
"thresholds": {
"oneStar": 0,
"twoStar": 5,
"threeStar": 10
}
},
"availableGemTypes": [0, 1, 2, 3, 4, 5],
"unlocked": false
},
{
"id": 3,
"name": "Time Trial",
"description": "Beat the clock to reach your goal",
"constraints": {
"targetScore": 2000,
"timeLimit": 60
},
"objectives": {},
"starRating": {
"criteria": "TIME_REMAINING",
"thresholds": {
"oneStar": 0,
"twoStar": 15,
"threeStar": 30
}
},
"availableGemTypes": [0, 1, 2, 3, 4, 5],
"unlocked": false
},
{
"id": 4,
"name": "Color Focus",
"description": "Clear specific gem colors while reaching the score",
"constraints": {
"targetScore": 1800
},
"objectives": {
"clearGemTypes": {
"0": 15,
"2": 12
}
},
"starRating": {
"criteria": "EFFICIENCY",
"thresholds": {
"oneStar": 1800,
"twoStar": 2200,
"threeStar": 2600
}
},
"availableGemTypes": [0, 1, 2, 3, 4, 5],
"unlocked": false
},
{
"id": 5,
"name": "Ultimate Challenge",
"description": "Master all skills in this combined challenge",
"constraints": {
"targetScore": 2500,
"maxMoves": 25
},
"objectives": {
"clearGemTypes": {
"1": 8,
"3": 10
}
},
"starRating": {
"criteria": "COMBINED",
"thresholds": {
"oneStar": 2500,
"twoStar": 3000,
"threeStar": 3500
}
},
"availableGemTypes": [0, 1, 2, 3, 4, 5],
"unlocked": false
}
]
}