- 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
113 lines
2.5 KiB
JSON
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
|
|
}
|
|
]
|
|
}
|