diff --git a/content/manifest.json b/content/manifest.json new file mode 100644 index 0000000..6779deb --- /dev/null +++ b/content/manifest.json @@ -0,0 +1,19 @@ +{ + "schemaVersion": 1, + "minAppBuild": 1, + "current": "season_002", + "seasons": [ + { + "seasonId": "season_001", + "version": 1, + "packUrl": "seasons/season_001/pack.json", + "sha256": "5b20b88251931838563aaaa7729f48e5a35f09dbf80c576b9bc2ec944050fc0a" + }, + { + "seasonId": "season_002", + "version": 1, + "packUrl": "seasons/season_002/pack.json", + "sha256": "47cc115f9982ade7df686b28aa95a82edcc1e8a4aae5f13319e7131477855de3" + } + ] +} diff --git a/content/season_002/pack.json b/content/season_002/pack.json new file mode 100644 index 0000000..a0f1cf0 --- /dev/null +++ b/content/season_002/pack.json @@ -0,0 +1,2235 @@ +{ + "schemaVersion": 1, + "seasonId": "season_002", + "version": 1, + "title": { + "en": "Summer Tide", + "ko": "여름 파도" + }, + "theme": { + "tileSet": "summer", + "background": "", + "backgroundGradient": [ + 4278854704, + 4279253322, + 4280179302 + ], + "accentColor": 4285517301, + "particleType": "petals" + }, + "stages": [ + { + "id": "season_002_001", + "seed": 1024716960, + "moveLimit": 7, + "preset": [ + { + "x": 0, + "y": 2, + "t": "gem" + } + ], + "objectives": [ + { + "type": "clearGems", + "count": 1 + } + ], + "stars": { + "two": { + "movesLeft": 3 + }, + "three": { + "movesLeft": 4 + } + }, + "generatorProfile": "easy" + }, + { + "id": "season_002_002", + "seed": 144388466, + "moveLimit": 8, + "preset": [ + { + "x": 7, + "y": 5, + "t": "gem" + }, + { + "x": 1, + "y": 3, + "t": "filled", + "c": 3 + }, + { + "x": 5, + "y": 4, + "t": "filled", + "c": 2 + } + ], + "objectives": [ + { + "type": "clearGems", + "count": 1 + } + ], + "stars": { + "two": { + "movesLeft": 4 + }, + "three": { + "movesLeft": 5 + } + }, + "generatorProfile": "easy" + }, + { + "id": "season_002_003", + "seed": 679292503, + "moveLimit": 11, + "preset": [ + { + "x": 4, + "y": 1, + "t": "gem" + }, + { + "x": 2, + "y": 2, + "t": "gem" + }, + { + "x": 6, + "y": 6, + "t": "filled", + "c": 2 + }, + { + "x": 1, + "y": 6, + "t": "filled", + "c": 4 + } + ], + "objectives": [ + { + "type": "clearGems", + "count": 2 + } + ], + "stars": { + "two": { + "movesLeft": 4 + }, + "three": { + "movesLeft": 5 + } + }, + "generatorProfile": "easy" + }, + { + "id": "season_002_004", + "seed": 517040954, + "moveLimit": 12, + "preset": [ + { + "x": 5, + "y": 3, + "t": "gem" + }, + { + "x": 6, + "y": 5, + "t": "gem" + }, + { + "x": 0, + "y": 3, + "t": "filled", + "c": 5 + }, + { + "x": 7, + "y": 0, + "t": "filled", + "c": 1 + }, + { + "x": 4, + "y": 0, + "t": "filled", + "c": 1 + } + ], + "objectives": [ + { + "type": "clearGems", + "count": 2 + } + ], + "stars": { + "two": { + "movesLeft": 5 + }, + "three": { + "movesLeft": 6 + } + }, + "generatorProfile": "easy" + }, + { + "id": "season_002_005", + "seed": 887462827, + "moveLimit": 25, + "preset": [ + { + "x": 3, + "y": 3, + "t": "gem" + }, + { + "x": 5, + "y": 4, + "t": "gem" + }, + { + "x": 2, + "y": 7, + "t": "gem" + }, + { + "x": 3, + "y": 2, + "t": "filled", + "c": 4 + }, + { + "x": 4, + "y": 6, + "t": "filled", + "c": 4 + } + ], + "objectives": [ + { + "type": "reachScore", + "target": 990 + } + ], + "stars": { + "two": { + "movesLeft": 6 + }, + "three": { + "movesLeft": 9 + } + }, + "generatorProfile": "easy" + }, + { + "id": "season_002_006", + "seed": 629021082, + "moveLimit": 24, + "preset": [ + { + "x": 4, + "y": 0, + "t": "gem" + }, + { + "x": 4, + "y": 2, + "t": "gem" + }, + { + "x": 0, + "y": 7, + "t": "gem" + }, + { + "x": 7, + "y": 6, + "t": "filled", + "c": 3 + }, + { + "x": 0, + "y": 1, + "t": "filled", + "c": 1 + }, + { + "x": 7, + "y": 1, + "t": "filled", + "c": 5 + } + ], + "objectives": [ + { + "type": "clearGems", + "count": 3 + } + ], + "stars": { + "two": { + "movesLeft": 11 + }, + "three": { + "movesLeft": 17 + } + }, + "generatorProfile": "easy" + }, + { + "id": "season_002_007", + "seed": 306710347, + "moveLimit": 23, + "preset": [ + { + "x": 2, + "y": 7, + "t": "gem" + }, + { + "x": 7, + "y": 0, + "t": "gem" + }, + { + "x": 4, + "y": 6, + "t": "gem" + }, + { + "x": 1, + "y": 2, + "t": "filled", + "c": 0 + } + ], + "objectives": [ + { + "type": "clearLines", + "count": 5 + } + ], + "stars": { + "two": { + "movesLeft": 6 + }, + "three": { + "movesLeft": 8 + } + }, + "generatorProfile": "easy" + }, + { + "id": "season_002_008", + "seed": 864645209, + "moveLimit": 6, + "preset": [ + { + "x": 6, + "y": 4, + "t": "gem" + }, + { + "x": 7, + "y": 4, + "t": "gem" + }, + { + "x": 2, + "y": 6, + "t": "filled", + "c": 7 + }, + { + "x": 3, + "y": 5, + "t": "filled", + "c": 5 + }, + { + "x": 4, + "y": 4, + "t": "filled", + "c": 0 + } + ], + "objectives": [ + { + "type": "clearGems", + "count": 2 + } + ], + "stars": { + "two": { + "movesLeft": 2 + }, + "three": { + "movesLeft": 3 + } + }, + "generatorProfile": "easy" + }, + { + "id": "season_002_009", + "seed": 132156210, + "moveLimit": 14, + "preset": [ + { + "x": 2, + "y": 6, + "t": "gem" + }, + { + "x": 7, + "y": 6, + "t": "gem" + }, + { + "x": 2, + "y": 7, + "t": "gem" + }, + { + "x": 3, + "y": 6, + "t": "gem" + }, + { + "x": 6, + "y": 3, + "t": "filled", + "c": 5 + }, + { + "x": 4, + "y": 1, + "t": "filled", + "c": 0 + }, + { + "x": 5, + "y": 3, + "t": "filled", + "c": 7 + }, + { + "x": 4, + "y": 4, + "t": "filled", + "c": 1 + } + ], + "objectives": [ + { + "type": "clearGems", + "count": 4 + } + ], + "stars": { + "two": { + "movesLeft": 6 + }, + "three": { + "movesLeft": 7 + } + }, + "generatorProfile": "easy" + }, + { + "id": "season_002_010", + "seed": 537285571, + "moveLimit": 31, + "preset": [ + { + "x": 3, + "y": 4, + "t": "gem" + }, + { + "x": 0, + "y": 3, + "t": "gem" + }, + { + "x": 5, + "y": 2, + "t": "gem" + }, + { + "x": 0, + "y": 5, + "t": "gem" + }, + { + "x": 6, + "y": 2, + "t": "filled", + "c": 6 + }, + { + "x": 2, + "y": 1, + "t": "filled", + "c": 5 + }, + { + "x": 6, + "y": 5, + "t": "filled", + "c": 7 + }, + { + "x": 6, + "y": 0, + "t": "filled", + "c": 6 + } + ], + "objectives": [ + { + "type": "reachScore", + "target": 1476 + } + ], + "stars": { + "two": { + "movesLeft": 9 + }, + "three": { + "movesLeft": 11 + } + }, + "generatorProfile": "easy" + }, + { + "id": "season_002_011", + "seed": 71136992, + "moveLimit": 16, + "preset": [ + { + "x": 2, + "y": 6, + "t": "gem" + }, + { + "x": 5, + "y": 1, + "t": "gem" + }, + { + "x": 2, + "y": 7, + "t": "gem" + }, + { + "x": 5, + "y": 6, + "t": "gem" + }, + { + "x": 4, + "y": 6, + "t": "filled", + "c": 6 + }, + { + "x": 0, + "y": 3, + "t": "filled", + "c": 5 + }, + { + "x": 2, + "y": 4, + "t": "filled", + "c": 6 + } + ], + "objectives": [ + { + "type": "clearGems", + "count": 4 + } + ], + "stars": { + "two": { + "movesLeft": 6 + }, + "three": { + "movesLeft": 9 + } + }, + "generatorProfile": "mid" + }, + { + "id": "season_002_012", + "seed": 382813599, + "moveLimit": 15, + "preset": [ + { + "x": 6, + "y": 7, + "t": "gem" + }, + { + "x": 7, + "y": 5, + "t": "gem" + }, + { + "x": 4, + "y": 5, + "t": "gem" + }, + { + "x": 7, + "y": 4, + "t": "gem" + }, + { + "x": 5, + "y": 7, + "t": "filled", + "c": 3 + }, + { + "x": 0, + "y": 7, + "t": "filled", + "c": 3 + }, + { + "x": 2, + "y": 5, + "t": "filled", + "c": 1 + }, + { + "x": 5, + "y": 5, + "t": "filled", + "c": 3 + } + ], + "objectives": [ + { + "type": "clearGems", + "count": 4 + } + ], + "stars": { + "two": { + "movesLeft": 5 + }, + "three": { + "movesLeft": 7 + } + }, + "generatorProfile": "mid" + }, + { + "id": "season_002_013", + "seed": 164663924, + "moveLimit": 20, + "preset": [ + { + "x": 6, + "y": 6, + "t": "gem" + }, + { + "x": 5, + "y": 1, + "t": "gem" + }, + { + "x": 6, + "y": 7, + "t": "gem" + }, + { + "x": 0, + "y": 3, + "t": "gem" + }, + { + "x": 7, + "y": 4, + "t": "filled", + "c": 5 + }, + { + "x": 7, + "y": 6, + "t": "filled", + "c": 4 + }, + { + "x": 6, + "y": 5, + "t": "filled", + "c": 3 + }, + { + "x": 3, + "y": 4, + "t": "filled", + "c": 3 + }, + { + "x": 7, + "y": 2, + "t": "filled", + "c": 4 + } + ], + "objectives": [ + { + "type": "clearGems", + "count": 4 + } + ], + "stars": { + "two": { + "movesLeft": 9 + }, + "three": { + "movesLeft": 11 + } + }, + "generatorProfile": "mid" + }, + { + "id": "season_002_014", + "seed": 625450574, + "moveLimit": 27, + "preset": [ + { + "x": 2, + "y": 4, + "t": "gem" + }, + { + "x": 5, + "y": 2, + "t": "gem" + }, + { + "x": 5, + "y": 6, + "t": "gem" + }, + { + "x": 5, + "y": 1, + "t": "gem" + }, + { + "x": 0, + "y": 5, + "t": "filled", + "c": 7 + }, + { + "x": 7, + "y": 7, + "t": "filled", + "c": 1 + }, + { + "x": 6, + "y": 7, + "t": "filled", + "c": 5 + }, + { + "x": 4, + "y": 7, + "t": "filled", + "c": 2 + } + ], + "objectives": [ + { + "type": "clearLines", + "count": 7 + } + ], + "stars": { + "two": { + "movesLeft": 5 + }, + "three": { + "movesLeft": 7 + } + }, + "generatorProfile": "mid" + }, + { + "id": "season_002_015", + "seed": 740124347, + "moveLimit": 30, + "preset": [ + { + "x": 4, + "y": 5, + "t": "gem" + }, + { + "x": 7, + "y": 3, + "t": "gem" + }, + { + "x": 2, + "y": 3, + "t": "gem" + }, + { + "x": 2, + "y": 2, + "t": "gem" + }, + { + "x": 7, + "y": 4, + "t": "gem" + }, + { + "x": 3, + "y": 6, + "t": "filled", + "c": 0 + }, + { + "x": 0, + "y": 0, + "t": "filled", + "c": 6 + }, + { + "x": 1, + "y": 6, + "t": "filled", + "c": 7 + }, + { + "x": 6, + "y": 6, + "t": "filled", + "c": 7 + } + ], + "objectives": [ + { + "type": "reachScore", + "target": 1766 + } + ], + "stars": { + "two": { + "movesLeft": 4 + }, + "three": { + "movesLeft": 8 + } + }, + "generatorProfile": "mid" + }, + { + "id": "season_002_016", + "seed": 61542891, + "moveLimit": 10, + "preset": [ + { + "x": 4, + "y": 5, + "t": "gem" + }, + { + "x": 5, + "y": 7, + "t": "gem" + }, + { + "x": 5, + "y": 1, + "t": "gem" + }, + { + "x": 5, + "y": 0, + "t": "gem" + }, + { + "x": 5, + "y": 6, + "t": "gem" + }, + { + "x": 2, + "y": 7, + "t": "filled", + "c": 7 + }, + { + "x": 3, + "y": 6, + "t": "filled", + "c": 1 + }, + { + "x": 1, + "y": 7, + "t": "filled", + "c": 0 + }, + { + "x": 6, + "y": 1, + "t": "filled", + "c": 5 + }, + { + "x": 3, + "y": 1, + "t": "filled", + "c": 3 + } + ], + "objectives": [ + { + "type": "clearGems", + "count": 5 + } + ], + "stars": { + "two": { + "movesLeft": 3 + }, + "three": { + "movesLeft": 5 + } + }, + "generatorProfile": "mid" + }, + { + "id": "season_002_017", + "seed": 442657612, + "moveLimit": 21, + "preset": [ + { + "x": 0, + "y": 2, + "t": "gem" + }, + { + "x": 2, + "y": 2, + "t": "gem" + }, + { + "x": 7, + "y": 0, + "t": "gem" + }, + { + "x": 5, + "y": 3, + "t": "gem" + }, + { + "x": 2, + "y": 4, + "t": "gem" + }, + { + "x": 5, + "y": 6, + "t": "filled", + "c": 2 + }, + { + "x": 7, + "y": 1, + "t": "filled", + "c": 6 + }, + { + "x": 2, + "y": 1, + "t": "filled", + "c": 7 + }, + { + "x": 4, + "y": 3, + "t": "filled", + "c": 1 + }, + { + "x": 1, + "y": 7, + "t": "filled", + "c": 6 + }, + { + "x": 7, + "y": 7, + "t": "filled", + "c": 5 + } + ], + "objectives": [ + { + "type": "clearGems", + "count": 5 + } + ], + "stars": { + "two": { + "movesLeft": 7 + }, + "three": { + "movesLeft": 10 + } + }, + "generatorProfile": "mid" + }, + { + "id": "season_002_018", + "seed": 559709856, + "moveLimit": 27, + "preset": [ + { + "x": 1, + "y": 0, + "t": "gem" + }, + { + "x": 1, + "y": 5, + "t": "gem" + }, + { + "x": 6, + "y": 6, + "t": "gem" + }, + { + "x": 5, + "y": 5, + "t": "gem" + }, + { + "x": 2, + "y": 2, + "t": "gem" + }, + { + "x": 2, + "y": 1, + "t": "gem" + }, + { + "x": 7, + "y": 0, + "t": "filled", + "c": 7 + }, + { + "x": 0, + "y": 1, + "t": "filled", + "c": 5 + }, + { + "x": 1, + "y": 2, + "t": "filled", + "c": 0 + }, + { + "x": 5, + "y": 1, + "t": "filled", + "c": 1 + }, + { + "x": 1, + "y": 6, + "t": "filled", + "c": 2 + } + ], + "objectives": [ + { + "type": "clearGems", + "count": 6 + } + ], + "stars": { + "two": { + "movesLeft": 9 + }, + "three": { + "movesLeft": 13 + } + }, + "generatorProfile": "mid" + }, + { + "id": "season_002_019", + "seed": 12667865, + "moveLimit": 20, + "preset": [ + { + "x": 3, + "y": 5, + "t": "gem" + }, + { + "x": 1, + "y": 1, + "t": "gem" + }, + { + "x": 7, + "y": 3, + "t": "gem" + }, + { + "x": 3, + "y": 6, + "t": "gem" + }, + { + "x": 3, + "y": 0, + "t": "gem" + }, + { + "x": 2, + "y": 0, + "t": "gem" + }, + { + "x": 6, + "y": 0, + "t": "filled", + "c": 3 + }, + { + "x": 2, + "y": 5, + "t": "filled", + "c": 2 + }, + { + "x": 6, + "y": 2, + "t": "filled", + "c": 3 + }, + { + "x": 4, + "y": 7, + "t": "filled", + "c": 1 + }, + { + "x": 4, + "y": 5, + "t": "filled", + "c": 6 + }, + { + "x": 5, + "y": 7, + "t": "filled", + "c": 6 + } + ], + "objectives": [ + { + "type": "clearGems", + "count": 6 + } + ], + "stars": { + "two": { + "movesLeft": 4 + }, + "three": { + "movesLeft": 7 + } + }, + "generatorProfile": "mid" + }, + { + "id": "season_002_020", + "seed": 656616749, + "moveLimit": 33, + "preset": [ + { + "x": 1, + "y": 1, + "t": "gem" + }, + { + "x": 3, + "y": 5, + "t": "gem" + }, + { + "x": 4, + "y": 3, + "t": "gem" + }, + { + "x": 7, + "y": 2, + "t": "gem" + }, + { + "x": 0, + "y": 5, + "t": "gem" + }, + { + "x": 2, + "y": 2, + "t": "filled", + "c": 2 + }, + { + "x": 1, + "y": 3, + "t": "filled", + "c": 2 + }, + { + "x": 3, + "y": 3, + "t": "filled", + "c": 4 + }, + { + "x": 0, + "y": 2, + "t": "filled", + "c": 3 + }, + { + "x": 5, + "y": 3, + "t": "filled", + "c": 5 + }, + { + "x": 2, + "y": 5, + "t": "filled", + "c": 1 + } + ], + "objectives": [ + { + "type": "reachScore", + "target": 2185 + } + ], + "stars": { + "two": { + "movesLeft": 5 + }, + "three": { + "movesLeft": 8 + } + }, + "generatorProfile": "mid" + }, + { + "id": "season_002_021", + "seed": 861387935, + "moveLimit": 23, + "preset": [ + { + "x": 0, + "y": 7, + "t": "gem" + }, + { + "x": 5, + "y": 3, + "t": "gem" + }, + { + "x": 6, + "y": 0, + "t": "gem" + }, + { + "x": 5, + "y": 4, + "t": "gem" + }, + { + "x": 1, + "y": 2, + "t": "gem" + }, + { + "x": 4, + "y": 5, + "t": "filled", + "c": 7 + }, + { + "x": 6, + "y": 7, + "t": "filled", + "c": 7 + }, + { + "x": 6, + "y": 4, + "t": "filled", + "c": 6 + }, + { + "x": 6, + "y": 6, + "t": "filled", + "c": 6 + }, + { + "x": 2, + "y": 5, + "t": "filled", + "c": 7 + } + ], + "objectives": [ + { + "type": "clearLines", + "count": 8 + } + ], + "stars": { + "two": { + "movesLeft": 1 + }, + "three": { + "movesLeft": 3 + } + }, + "generatorProfile": "hard" + }, + { + "id": "season_002_022", + "seed": 393356148, + "moveLimit": 28, + "preset": [ + { + "x": 4, + "y": 0, + "t": "gem" + }, + { + "x": 7, + "y": 5, + "t": "gem" + }, + { + "x": 1, + "y": 7, + "t": "gem" + }, + { + "x": 2, + "y": 3, + "t": "gem" + }, + { + "x": 0, + "y": 2, + "t": "gem" + }, + { + "x": 6, + "y": 4, + "t": "filled", + "c": 1 + }, + { + "x": 6, + "y": 3, + "t": "filled", + "c": 6 + }, + { + "x": 3, + "y": 2, + "t": "filled", + "c": 2 + }, + { + "x": 0, + "y": 1, + "t": "filled", + "c": 7 + }, + { + "x": 3, + "y": 7, + "t": "filled", + "c": 0 + }, + { + "x": 3, + "y": 5, + "t": "filled", + "c": 2 + } + ], + "objectives": [ + { + "type": "clearGems", + "count": 5 + } + ], + "stars": { + "two": { + "movesLeft": 6 + }, + "three": { + "movesLeft": 12 + } + }, + "generatorProfile": "hard" + }, + { + "id": "season_002_023", + "seed": 295173126, + "moveLimit": 26, + "preset": [ + { + "x": 3, + "y": 0, + "t": "gem" + }, + { + "x": 3, + "y": 3, + "t": "gem" + }, + { + "x": 4, + "y": 4, + "t": "gem" + }, + { + "x": 6, + "y": 5, + "t": "gem" + }, + { + "x": 6, + "y": 0, + "t": "gem" + }, + { + "x": 1, + "y": 7, + "t": "gem" + }, + { + "x": 2, + "y": 1, + "t": "gem" + }, + { + "x": 4, + "y": 0, + "t": "filled", + "c": 1 + }, + { + "x": 0, + "y": 1, + "t": "filled", + "c": 7 + }, + { + "x": 5, + "y": 6, + "t": "filled", + "c": 3 + }, + { + "x": 2, + "y": 2, + "t": "filled", + "c": 4 + }, + { + "x": 6, + "y": 2, + "t": "filled", + "c": 7 + } + ], + "objectives": [ + { + "type": "clearGems", + "count": 7 + } + ], + "stars": { + "two": { + "movesLeft": 6 + }, + "three": { + "movesLeft": 10 + } + }, + "generatorProfile": "hard" + }, + { + "id": "season_002_024", + "seed": 796224392, + "moveLimit": 21, + "preset": [ + { + "x": 6, + "y": 3, + "t": "gem" + }, + { + "x": 3, + "y": 6, + "t": "gem" + }, + { + "x": 0, + "y": 6, + "t": "gem" + }, + { + "x": 2, + "y": 7, + "t": "gem" + }, + { + "x": 6, + "y": 0, + "t": "gem" + }, + { + "x": 3, + "y": 3, + "t": "gem" + }, + { + "x": 6, + "y": 4, + "t": "gem" + }, + { + "x": 4, + "y": 0, + "t": "filled", + "c": 5 + }, + { + "x": 0, + "y": 0, + "t": "filled", + "c": 2 + }, + { + "x": 3, + "y": 4, + "t": "filled", + "c": 1 + }, + { + "x": 2, + "y": 0, + "t": "filled", + "c": 1 + }, + { + "x": 5, + "y": 4, + "t": "filled", + "c": 3 + }, + { + "x": 5, + "y": 2, + "t": "filled", + "c": 2 + }, + { + "x": 6, + "y": 7, + "t": "filled", + "c": 4 + }, + { + "x": 7, + "y": 4, + "t": "filled", + "c": 2 + } + ], + "objectives": [ + { + "type": "clearGems", + "count": 7 + } + ], + "stars": { + "two": { + "movesLeft": 5 + }, + "three": { + "movesLeft": 10 + } + }, + "generatorProfile": "hard" + }, + { + "id": "season_002_025", + "seed": 543476835, + "moveLimit": 39, + "preset": [ + { + "x": 1, + "y": 2, + "t": "gem" + }, + { + "x": 4, + "y": 3, + "t": "gem" + }, + { + "x": 3, + "y": 5, + "t": "gem" + }, + { + "x": 6, + "y": 2, + "t": "gem" + }, + { + "x": 2, + "y": 0, + "t": "gem" + }, + { + "x": 5, + "y": 4, + "t": "gem" + }, + { + "x": 6, + "y": 7, + "t": "gem" + }, + { + "x": 2, + "y": 6, + "t": "filled", + "c": 6 + }, + { + "x": 4, + "y": 6, + "t": "filled", + "c": 4 + }, + { + "x": 2, + "y": 3, + "t": "filled", + "c": 2 + }, + { + "x": 0, + "y": 1, + "t": "filled", + "c": 0 + }, + { + "x": 1, + "y": 5, + "t": "filled", + "c": 2 + }, + { + "x": 5, + "y": 3, + "t": "filled", + "c": 5 + }, + { + "x": 2, + "y": 4, + "t": "filled", + "c": 6 + }, + { + "x": 1, + "y": 6, + "t": "filled", + "c": 0 + } + ], + "objectives": [ + { + "type": "reachScore", + "target": 2692 + } + ], + "stars": { + "two": { + "movesLeft": 7 + }, + "three": { + "movesLeft": 11 + } + }, + "generatorProfile": "hard" + }, + { + "id": "season_002_026", + "seed": 834421452, + "moveLimit": 31, + "preset": [ + { + "x": 7, + "y": 3, + "t": "gem" + }, + { + "x": 5, + "y": 6, + "t": "gem" + }, + { + "x": 3, + "y": 7, + "t": "gem" + }, + { + "x": 4, + "y": 4, + "t": "gem" + }, + { + "x": 0, + "y": 4, + "t": "gem" + }, + { + "x": 7, + "y": 0, + "t": "gem" + }, + { + "x": 6, + "y": 7, + "t": "filled", + "c": 3 + }, + { + "x": 2, + "y": 3, + "t": "filled", + "c": 0 + }, + { + "x": 7, + "y": 4, + "t": "filled", + "c": 2 + }, + { + "x": 6, + "y": 1, + "t": "filled", + "c": 3 + }, + { + "x": 3, + "y": 0, + "t": "filled", + "c": 5 + }, + { + "x": 3, + "y": 6, + "t": "filled", + "c": 6 + }, + { + "x": 6, + "y": 5, + "t": "filled", + "c": 6 + }, + { + "x": 0, + "y": 1, + "t": "filled", + "c": 2 + } + ], + "objectives": [ + { + "type": "clearGems", + "count": 6 + } + ], + "stars": { + "two": { + "movesLeft": 9 + }, + "three": { + "movesLeft": 15 + } + }, + "generatorProfile": "hard" + }, + { + "id": "season_002_027", + "seed": 59263045, + "moveLimit": 13, + "preset": [ + { + "x": 2, + "y": 3, + "t": "gem" + }, + { + "x": 2, + "y": 6, + "t": "gem" + }, + { + "x": 2, + "y": 1, + "t": "gem" + }, + { + "x": 5, + "y": 2, + "t": "gem" + }, + { + "x": 2, + "y": 5, + "t": "gem" + }, + { + "x": 3, + "y": 2, + "t": "gem" + }, + { + "x": 2, + "y": 2, + "t": "filled", + "c": 3 + }, + { + "x": 0, + "y": 5, + "t": "filled", + "c": 2 + }, + { + "x": 4, + "y": 6, + "t": "filled", + "c": 6 + }, + { + "x": 3, + "y": 6, + "t": "filled", + "c": 7 + }, + { + "x": 4, + "y": 7, + "t": "filled", + "c": 2 + }, + { + "x": 1, + "y": 0, + "t": "filled", + "c": 4 + }, + { + "x": 0, + "y": 0, + "t": "filled", + "c": 5 + } + ], + "objectives": [ + { + "type": "clearGems", + "count": 6 + } + ], + "stars": { + "two": { + "movesLeft": 2 + }, + "three": { + "movesLeft": 5 + } + }, + "generatorProfile": "hard" + }, + { + "id": "season_002_028", + "seed": 521249389, + "moveLimit": 27, + "preset": [ + { + "x": 0, + "y": 0, + "t": "gem" + }, + { + "x": 1, + "y": 2, + "t": "gem" + }, + { + "x": 5, + "y": 5, + "t": "gem" + }, + { + "x": 0, + "y": 7, + "t": "gem" + }, + { + "x": 4, + "y": 3, + "t": "gem" + }, + { + "x": 0, + "y": 3, + "t": "gem" + }, + { + "x": 3, + "y": 4, + "t": "gem" + }, + { + "x": 6, + "y": 2, + "t": "gem" + }, + { + "x": 4, + "y": 2, + "t": "filled", + "c": 4 + }, + { + "x": 0, + "y": 1, + "t": "filled", + "c": 6 + }, + { + "x": 7, + "y": 2, + "t": "filled", + "c": 3 + }, + { + "x": 5, + "y": 2, + "t": "filled", + "c": 5 + }, + { + "x": 4, + "y": 7, + "t": "filled", + "c": 0 + }, + { + "x": 3, + "y": 5, + "t": "filled", + "c": 1 + }, + { + "x": 4, + "y": 5, + "t": "filled", + "c": 1 + }, + { + "x": 6, + "y": 4, + "t": "filled", + "c": 5 + } + ], + "objectives": [ + { + "type": "clearLines", + "count": 10 + } + ], + "stars": { + "two": { + "movesLeft": 2 + }, + "three": { + "movesLeft": 4 + } + }, + "generatorProfile": "hard" + }, + { + "id": "season_002_029", + "seed": 809199245, + "moveLimit": 27, + "preset": [ + { + "x": 3, + "y": 2, + "t": "gem" + }, + { + "x": 7, + "y": 7, + "t": "gem" + }, + { + "x": 1, + "y": 3, + "t": "gem" + }, + { + "x": 7, + "y": 5, + "t": "gem" + }, + { + "x": 1, + "y": 4, + "t": "gem" + }, + { + "x": 5, + "y": 7, + "t": "gem" + }, + { + "x": 0, + "y": 4, + "t": "gem" + }, + { + "x": 3, + "y": 1, + "t": "filled", + "c": 7 + }, + { + "x": 3, + "y": 4, + "t": "filled", + "c": 6 + }, + { + "x": 0, + "y": 7, + "t": "filled", + "c": 4 + }, + { + "x": 4, + "y": 6, + "t": "filled", + "c": 5 + }, + { + "x": 3, + "y": 3, + "t": "filled", + "c": 5 + }, + { + "x": 6, + "y": 3, + "t": "filled", + "c": 4 + }, + { + "x": 5, + "y": 2, + "t": "filled", + "c": 4 + }, + { + "x": 2, + "y": 1, + "t": "filled", + "c": 4 + } + ], + "objectives": [ + { + "type": "clearGems", + "count": 7 + } + ], + "stars": { + "two": { + "movesLeft": 8 + }, + "three": { + "movesLeft": 10 + } + }, + "generatorProfile": "hard" + }, + { + "id": "season_002_030", + "seed": 729553183, + "moveLimit": 37, + "preset": [ + { + "x": 4, + "y": 5, + "t": "gem" + }, + { + "x": 7, + "y": 3, + "t": "gem" + }, + { + "x": 4, + "y": 6, + "t": "gem" + }, + { + "x": 2, + "y": 2, + "t": "gem" + }, + { + "x": 3, + "y": 2, + "t": "gem" + }, + { + "x": 2, + "y": 0, + "t": "gem" + }, + { + "x": 3, + "y": 4, + "t": "gem" + }, + { + "x": 2, + "y": 3, + "t": "gem" + }, + { + "x": 5, + "y": 7, + "t": "filled", + "c": 7 + }, + { + "x": 5, + "y": 2, + "t": "filled", + "c": 3 + }, + { + "x": 5, + "y": 1, + "t": "filled", + "c": 1 + }, + { + "x": 3, + "y": 3, + "t": "filled", + "c": 1 + }, + { + "x": 2, + "y": 1, + "t": "filled", + "c": 4 + }, + { + "x": 0, + "y": 0, + "t": "filled", + "c": 5 + }, + { + "x": 3, + "y": 7, + "t": "filled", + "c": 3 + }, + { + "x": 1, + "y": 1, + "t": "filled", + "c": 4 + } + ], + "objectives": [ + { + "type": "reachScore", + "target": 3006 + } + ], + "stars": { + "two": { + "movesLeft": 2 + }, + "three": { + "movesLeft": 6 + } + }, + "generatorProfile": "hard" + } + ] +} \ No newline at end of file diff --git a/content/season_002/report.md b/content/season_002/report.md new file mode 100644 index 0000000..e55e190 --- /dev/null +++ b/content/season_002/report.md @@ -0,0 +1,36 @@ +# season_002 difficulty report + +30 stages, 80 bot runs each, generated in 4s. + +| stage | objective | moves | bot win rate | 2★/3★ movesLeft | +|---|---|---|---|---| +| season_002_001 | clearGems 1 | 7 | 83% | 3/4 | +| season_002_002 | clearGems 1 | 8 | 79% | 4/5 | +| season_002_003 | clearGems 2 | 11 | 91% | 4/5 | +| season_002_004 | clearGems 2 | 12 | 86% | 5/6 | +| season_002_005 | reachScore 990 | 25 | 100% | 6/9 | +| season_002_006 | clearGems 3 | 24 | 74% | 11/17 | +| season_002_007 | clearLines 5 | 23 | 100% | 6/8 | +| season_002_008 | clearGems 2 | 6 | 75% | 2/3 | +| season_002_009 | clearGems 4 | 14 | 86% | 6/7 | +| season_002_010 | reachScore 1476 | 31 | 100% | 9/11 | +| season_002_011 | clearGems 4 | 16 | 95% | 6/9 | +| season_002_012 | clearGems 4 | 15 | 70% | 5/7 | +| season_002_013 | clearGems 4 | 20 | 75% | 9/11 | +| season_002_014 | clearLines 7 | 27 | 99% | 5/7 | +| season_002_015 | reachScore 1766 | 30 | 96% | 4/8 | +| season_002_016 | clearGems 5 | 10 | 73% | 3/5 | +| season_002_017 | clearGems 5 | 21 | 65% | 7/10 | +| season_002_018 | clearGems 6 | 27 | 74% | 9/13 | +| season_002_019 | clearGems 6 | 20 | 73% | 4/7 | +| season_002_020 | reachScore 2185 | 33 | 93% | 5/8 | +| season_002_021 | clearLines 8 | 23 | 79% | 1/3 | +| season_002_022 | clearGems 5 | 28 | 85% | 6/12 | +| season_002_023 | clearGems 7 | 26 | 76% | 6/10 | +| season_002_024 | clearGems 7 | 21 | 83% | 5/10 | +| season_002_025 | reachScore 2692 | 39 | 93% | 7/11 | +| season_002_026 | clearGems 6 | 31 | 59% | 9/15 | +| season_002_027 | clearGems 6 | 13 | 65% | 2/5 | +| season_002_028 | clearLines 10 | 27 | 89% | 2/4 | +| season_002_029 | clearGems 7 | 27 | 69% | 8/10 | +| season_002_030 | reachScore 3006 | 37 | 80% | 2/6 | diff --git a/content/season_002/spec.json b/content/season_002/spec.json new file mode 100644 index 0000000..414ffe6 --- /dev/null +++ b/content/season_002/spec.json @@ -0,0 +1,15 @@ +{ + "seasonId": "season_002", + "version": 1, + "title": { "en": "Summer Tide", "ko": "여름 파도" }, + "theme": { + "tileSet": "summer", + "background": "", + "backgroundGradient": [4278854704, 4279253322, 4280179302], + "accentColor": 4285517301, + "particleType": "petals" + }, + "stageCount": 30, + "baseSeed": 20260612, + "runsPerStage": 80 +} diff --git a/tool/make_manifest.dart b/tool/make_manifest.dart new file mode 100644 index 0000000..959e33e --- /dev/null +++ b/tool/make_manifest.dart @@ -0,0 +1,41 @@ +import 'dart:convert'; +import 'dart:io'; + +import 'package:crypto/crypto.dart'; + +/// Builds content/manifest.json from the season packs under content/. +/// Usage: dart run tool/make_manifest.dart +void main() { + final contentDir = Directory('content'); + final seasons = >[]; + + final dirs = contentDir + .listSync() + .whereType() + .where((d) => File('${d.path}/pack.json').existsSync()) + .toList() + ..sort((a, b) => a.path.compareTo(b.path)); + + for (final dir in dirs) { + final file = File('${dir.path}/pack.json'); + final bytes = file.readAsBytesSync(); + final pack = jsonDecode(utf8.decode(bytes)) as Map; + seasons.add({ + 'seasonId': pack['seasonId'], + 'version': pack['version'], + 'packUrl': 'seasons/${pack['seasonId']}/pack.json', + 'sha256': sha256.convert(bytes).toString(), + }); + } + + final manifest = { + 'schemaVersion': 1, + 'minAppBuild': 1, + 'current': seasons.isEmpty ? '' : seasons.last['seasonId'], + 'seasons': seasons, + }; + + File('content/manifest.json').writeAsStringSync( + '${const JsonEncoder.withIndent(" ").convert(manifest)}\n'); + stdout.writeln('manifest.json written with ${seasons.length} season(s).'); +}