- Add gridWidth and gridHeight properties to level configuration - Update GameGrid to accept custom dimensions instead of using constants - Modify GridComponent to calculate gem size based on grid dimensions - Update MatchThreeGame constructor to pass grid dimensions - Ensure proper scaling and positioning for variable grid sizes
123 lines
2.7 KiB
JSON
123 lines
2.7 KiB
JSON
{
|
|
"levels": [
|
|
{
|
|
"id": 1,
|
|
"name": "Getting Started",
|
|
"description": "Learn the basics by reaching the target score",
|
|
"gridWidth": 8,
|
|
"gridHeight": 8,
|
|
"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",
|
|
"gridWidth": 7,
|
|
"gridHeight": 9,
|
|
"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",
|
|
"gridWidth": 10,
|
|
"gridHeight": 6,
|
|
"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",
|
|
"gridWidth": 6,
|
|
"gridHeight": 10,
|
|
"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",
|
|
"gridWidth": 9,
|
|
"gridHeight": 8,
|
|
"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
|
|
}
|
|
]
|
|
}
|