diff --git a/SVSim.Bootstrap/Data/story/chapters.json b/SVSim.Bootstrap/Data/story/chapters.json index 749a2c1..22b6840 100644 --- a/SVSim.Bootstrap/Data/story/chapters.json +++ b/SVSim.Bootstrap/Data/story/chapters.json @@ -24,6 +24,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -73,6 +74,7 @@ "bgm_id": "0", "special_battle_setting_id": 8, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -122,6 +124,7 @@ "bgm_id": "0", "special_battle_setting_id": 8, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -171,6 +174,7 @@ "bgm_id": "0", "special_battle_setting_id": 9, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -220,6 +224,7 @@ "bgm_id": "0", "special_battle_setting_id": 9, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -269,6 +274,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -318,6 +324,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -367,6 +374,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -416,6 +424,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -465,6 +474,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -514,6 +524,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -563,6 +574,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -612,6 +624,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -661,6 +674,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -710,6 +724,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -759,6 +774,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -808,6 +824,7 @@ "bgm_id": "0", "special_battle_setting_id": 8, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -857,6 +874,7 @@ "bgm_id": "0", "special_battle_setting_id": 8, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -906,6 +924,7 @@ "bgm_id": "0", "special_battle_setting_id": 9, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -955,6 +974,7 @@ "bgm_id": "0", "special_battle_setting_id": 9, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1004,6 +1024,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1053,6 +1074,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1102,6 +1124,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1151,6 +1174,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1200,6 +1224,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1249,6 +1274,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1298,6 +1324,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1347,6 +1374,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1396,6 +1424,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1445,6 +1474,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1494,6 +1524,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1543,6 +1574,7 @@ "bgm_id": "0", "special_battle_setting_id": 8, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1592,6 +1624,7 @@ "bgm_id": "0", "special_battle_setting_id": 8, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1641,6 +1674,7 @@ "bgm_id": "0", "special_battle_setting_id": 9, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1690,6 +1724,7 @@ "bgm_id": "0", "special_battle_setting_id": 9, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1739,6 +1774,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1788,6 +1824,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1837,6 +1874,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1886,6 +1924,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1935,6 +1974,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -1984,6 +2024,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -2033,6 +2074,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -2082,6 +2124,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -2131,6 +2174,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -2180,6 +2224,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -2229,6 +2274,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -2278,6 +2324,7 @@ "bgm_id": "0", "special_battle_setting_id": 8, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -2327,6 +2374,7 @@ "bgm_id": "0", "special_battle_setting_id": 8, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -2376,6 +2424,7 @@ "bgm_id": "0", "special_battle_setting_id": 9, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -2425,6 +2474,7 @@ "bgm_id": "0", "special_battle_setting_id": 9, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -2474,6 +2524,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -2523,6 +2574,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -2572,6 +2624,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -2621,6 +2674,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -2670,6 +2724,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -2719,6 +2774,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -2768,6 +2824,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -2817,6 +2874,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -2866,6 +2924,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -2915,6 +2974,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -2964,6 +3024,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3013,6 +3074,7 @@ "bgm_id": "0", "special_battle_setting_id": 8, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3062,6 +3124,7 @@ "bgm_id": "0", "special_battle_setting_id": 8, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3111,6 +3174,7 @@ "bgm_id": "0", "special_battle_setting_id": 9, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3160,6 +3224,7 @@ "bgm_id": "0", "special_battle_setting_id": 9, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3209,6 +3274,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3258,6 +3324,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3307,6 +3374,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3356,6 +3424,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3405,6 +3474,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3454,6 +3524,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3503,6 +3574,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3552,6 +3624,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3601,6 +3674,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3650,6 +3724,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3699,6 +3774,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3748,6 +3824,7 @@ "bgm_id": "0", "special_battle_setting_id": 8, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3797,6 +3874,7 @@ "bgm_id": "0", "special_battle_setting_id": 8, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3846,6 +3924,7 @@ "bgm_id": "0", "special_battle_setting_id": 9, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3895,6 +3974,7 @@ "bgm_id": "0", "special_battle_setting_id": 9, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3944,6 +4024,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -3993,6 +4074,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -4042,6 +4124,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -4091,6 +4174,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -4140,6 +4224,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -4189,6 +4274,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -4238,6 +4324,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -4287,6 +4374,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -4336,6 +4424,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -4385,6 +4474,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -4434,6 +4524,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -4483,6 +4574,7 @@ "bgm_id": "0", "special_battle_setting_id": 8, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -4532,6 +4624,7 @@ "bgm_id": "0", "special_battle_setting_id": 8, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -4581,6 +4674,7 @@ "bgm_id": "0", "special_battle_setting_id": 9, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -4630,6 +4724,7 @@ "bgm_id": "0", "special_battle_setting_id": 9, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -4679,6 +4774,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -4728,6 +4824,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -4777,6 +4874,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -4826,6 +4924,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -4875,6 +4974,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -4924,6 +5024,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -4973,6 +5074,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -5022,6 +5124,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -5071,6 +5174,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -5120,6 +5224,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -5169,6 +5274,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -5218,6 +5324,7 @@ "bgm_id": "0", "special_battle_setting_id": 8, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -5267,6 +5374,7 @@ "bgm_id": "0", "special_battle_setting_id": 8, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -5316,6 +5424,7 @@ "bgm_id": "0", "special_battle_setting_id": 9, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -5365,6 +5474,7 @@ "bgm_id": "0", "special_battle_setting_id": 9, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -5414,6 +5524,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -5463,6 +5574,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -5506,6 +5618,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -5564,6 +5677,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -5622,6 +5736,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -5680,6 +5795,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -5738,6 +5854,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -5796,6 +5913,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -5854,6 +5972,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -5912,6 +6031,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -6015,6 +6135,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -6118,6 +6239,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -6221,6 +6343,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -6270,6 +6393,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -6313,6 +6437,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -6362,6 +6487,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -6411,6 +6537,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -6460,6 +6587,7 @@ "bgm_id": "7", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -6509,6 +6637,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -6558,6 +6687,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -6607,6 +6737,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -6656,6 +6787,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -6705,6 +6837,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -6754,6 +6887,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -6803,6 +6937,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -6852,6 +6987,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -6895,6 +7031,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -6938,6 +7075,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -6987,6 +7125,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7030,6 +7169,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7079,6 +7219,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7128,6 +7269,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7177,6 +7319,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7226,6 +7369,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7269,6 +7413,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7318,6 +7463,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7367,6 +7513,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7416,6 +7563,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7465,6 +7613,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7508,6 +7657,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7551,6 +7701,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7600,6 +7751,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7649,6 +7801,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7698,6 +7851,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7741,6 +7895,7 @@ "bgm_id": "7", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7790,6 +7945,7 @@ "bgm_id": "7", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7839,6 +7995,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7888,6 +8045,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7931,6 +8089,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -7980,6 +8139,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8029,6 +8189,7 @@ "bgm_id": "7", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8078,6 +8239,7 @@ "bgm_id": "7", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8121,6 +8283,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8164,6 +8327,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8213,6 +8377,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8256,6 +8421,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8305,6 +8471,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8348,6 +8515,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8397,6 +8565,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8440,6 +8609,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8489,6 +8659,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8538,6 +8709,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8587,6 +8759,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8636,6 +8809,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8679,6 +8853,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8722,6 +8897,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8771,6 +8947,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8820,6 +8997,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8869,6 +9047,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8912,6 +9091,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -8961,6 +9141,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9010,6 +9191,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9053,6 +9235,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9102,6 +9285,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9151,6 +9335,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9200,6 +9385,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9249,6 +9435,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9292,6 +9479,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9335,6 +9523,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9384,6 +9573,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9433,6 +9623,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9482,6 +9673,7 @@ "bgm_id": "7", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9531,6 +9723,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9574,6 +9767,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9623,6 +9817,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9666,6 +9861,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9715,6 +9911,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9758,6 +9955,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9807,6 +10005,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9850,6 +10049,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9893,6 +10093,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9942,6 +10143,7 @@ "bgm_id": "5", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -9991,6 +10193,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10034,6 +10237,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10083,6 +10287,7 @@ "bgm_id": "5", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10132,6 +10337,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10181,6 +10387,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10230,6 +10437,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10279,6 +10487,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10328,6 +10537,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10377,6 +10587,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10420,6 +10631,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10463,6 +10675,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10512,6 +10725,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10561,6 +10775,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10610,6 +10825,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10653,6 +10869,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10702,6 +10919,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10751,6 +10969,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10794,6 +11013,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10843,6 +11063,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10892,6 +11113,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10935,6 +11157,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -10978,6 +11201,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -11021,6 +11245,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -11079,6 +11304,7 @@ "bgm_id": "5", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -11137,6 +11363,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -11195,6 +11422,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -11253,6 +11481,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -11296,6 +11525,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -11339,6 +11569,7 @@ "bgm_id": "4", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -11415,6 +11646,7 @@ "bgm_id": "9", "special_battle_setting_id": 1, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -11464,6 +11696,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -11531,6 +11764,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -11574,6 +11808,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -11677,6 +11912,7 @@ "bgm_id": "0", "special_battle_setting_id": 2, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -11726,6 +11962,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -11838,6 +12075,7 @@ "bgm_id": "lastbattle", "special_battle_setting_id": 3, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -11950,6 +12188,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -11999,6 +12238,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12042,6 +12282,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12091,6 +12332,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12140,6 +12382,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12183,6 +12426,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12232,6 +12476,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12281,6 +12526,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12324,6 +12570,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12373,6 +12620,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12422,6 +12670,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12465,6 +12714,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12514,6 +12764,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12563,6 +12814,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12606,6 +12858,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12655,6 +12908,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12704,6 +12958,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12747,6 +13002,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12796,6 +13052,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12839,6 +13096,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12888,6 +13146,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12937,6 +13196,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -12986,6 +13246,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13029,6 +13290,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13078,6 +13340,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13127,6 +13390,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13170,6 +13434,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13219,6 +13484,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13268,6 +13534,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13317,6 +13584,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13360,6 +13628,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13403,6 +13672,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13452,6 +13722,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13501,6 +13772,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13550,6 +13822,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13599,6 +13872,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13642,6 +13916,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13691,6 +13966,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13734,6 +14010,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13783,6 +14060,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13826,6 +14104,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13875,6 +14154,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13924,6 +14204,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -13967,6 +14248,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14016,6 +14298,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14065,6 +14348,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14108,6 +14392,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14157,6 +14442,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14206,6 +14492,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14255,6 +14542,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14298,6 +14586,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14341,6 +14630,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14384,6 +14674,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14427,6 +14718,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14470,6 +14762,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14513,6 +14806,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14556,6 +14850,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14605,6 +14900,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14648,6 +14944,7 @@ "bgm_id": "0", "special_battle_setting_id": 4, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14697,6 +14994,7 @@ "bgm_id": "0", "special_battle_setting_id": 5, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14746,6 +15044,7 @@ "bgm_id": "0", "special_battle_setting_id": 6, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14795,6 +15094,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14854,6 +15154,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14897,6 +15198,7 @@ "bgm_id": "redalert", "special_battle_setting_id": 7, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -14973,6 +15275,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15022,6 +15325,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15071,6 +15375,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15120,6 +15425,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15169,6 +15475,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15218,6 +15525,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15267,6 +15575,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15316,6 +15625,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15359,6 +15669,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15408,6 +15719,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15451,6 +15763,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15500,6 +15813,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15549,6 +15863,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15598,6 +15913,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15647,6 +15963,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15696,6 +16013,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15745,6 +16063,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15788,6 +16107,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15837,6 +16157,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15886,6 +16207,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15929,6 +16251,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -15978,6 +16301,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16027,6 +16351,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16076,6 +16401,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16125,6 +16451,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16168,6 +16495,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16217,6 +16545,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16266,6 +16595,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16315,6 +16645,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16364,6 +16695,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16413,6 +16745,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16456,6 +16789,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16505,6 +16839,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16554,6 +16889,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16603,6 +16939,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16652,6 +16989,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16701,6 +17039,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16750,6 +17089,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16799,6 +17139,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16848,6 +17189,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16891,6 +17233,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16940,6 +17283,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -16983,6 +17327,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17032,6 +17377,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17075,6 +17421,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17118,6 +17465,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17161,6 +17509,7 @@ "bgm_id": "31", "special_battle_setting_id": 10, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17210,6 +17559,7 @@ "bgm_id": "31", "special_battle_setting_id": 11, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17259,6 +17609,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17308,6 +17659,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17357,6 +17709,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17400,6 +17753,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17443,6 +17797,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17486,6 +17841,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17529,6 +17885,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17605,6 +17962,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17648,6 +18006,7 @@ "bgm_id": "31", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17691,6 +18050,7 @@ "bgm_id": "fiercefighting", "special_battle_setting_id": 12, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17749,6 +18109,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17803,6 +18164,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17846,6 +18208,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17889,6 +18252,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17938,6 +18302,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -17987,6 +18352,7 @@ "bgm_id": "33", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -18045,6 +18411,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -18094,6 +18461,7 @@ "bgm_id": "0", "special_battle_setting_id": 13, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -18143,6 +18511,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -18186,6 +18555,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -18229,6 +18599,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -18272,6 +18643,7 @@ "bgm_id": "fiercefighting", "special_battle_setting_id": 14, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -18384,6 +18756,7 @@ "bgm_id": "lastbattle", "special_battle_setting_id": 15, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -18496,6 +18869,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -18565,6 +18939,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -18614,6 +18989,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -18657,6 +19033,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -18700,6 +19077,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -18743,6 +19121,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -18786,6 +19165,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -18835,6 +19215,7 @@ "bgm_id": "41", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -18884,6 +19265,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -18933,6 +19315,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -18976,6 +19359,7 @@ "bgm_id": "41", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19025,6 +19409,7 @@ "bgm_id": "41", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19074,6 +19459,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19117,6 +19503,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19160,6 +19547,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19203,6 +19591,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19252,6 +19641,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19295,6 +19685,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19338,6 +19729,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19387,6 +19779,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19430,6 +19823,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19473,6 +19867,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19522,6 +19917,7 @@ "bgm_id": "41", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19571,6 +19967,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19614,6 +20011,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19657,6 +20055,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19700,6 +20099,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19749,6 +20149,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19792,6 +20193,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19835,6 +20237,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19884,6 +20287,7 @@ "bgm_id": "41", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19933,6 +20337,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -19976,6 +20381,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20019,6 +20425,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20062,6 +20469,7 @@ "bgm_id": "41", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20111,6 +20519,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20154,6 +20563,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20203,6 +20613,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20246,6 +20657,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20289,6 +20701,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20332,6 +20745,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20375,6 +20789,7 @@ "bgm_id": "41", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20424,6 +20839,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20467,6 +20883,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20516,6 +20933,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20565,6 +20983,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20608,6 +21027,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20651,6 +21071,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20694,6 +21115,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20737,6 +21159,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20780,6 +21203,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20823,6 +21247,7 @@ "bgm_id": "redalert", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20872,6 +21297,7 @@ "bgm_id": "41", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20921,6 +21347,7 @@ "bgm_id": "41", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -20979,6 +21406,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21022,6 +21450,7 @@ "bgm_id": "fiercefighting", "special_battle_setting_id": 16, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21076,6 +21505,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21125,6 +21555,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21168,6 +21599,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21211,6 +21643,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21260,6 +21693,7 @@ "bgm_id": "43", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21309,6 +21743,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21352,6 +21787,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21401,6 +21837,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21444,6 +21881,7 @@ "bgm_id": "redalert", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21493,6 +21931,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21536,6 +21975,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21579,6 +22019,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21622,6 +22063,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21665,6 +22107,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21714,6 +22157,7 @@ "bgm_id": "43", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21763,6 +22207,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21806,6 +22251,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21855,6 +22301,7 @@ "bgm_id": "43", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21904,6 +22351,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21947,6 +22395,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -21990,6 +22439,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22033,6 +22483,7 @@ "bgm_id": "43", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22082,6 +22533,7 @@ "bgm_id": "43", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22131,6 +22583,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22185,6 +22638,7 @@ "bgm_id": "43", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22234,6 +22688,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22277,6 +22732,7 @@ "bgm_id": "redalert", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22326,6 +22782,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22369,6 +22826,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22412,6 +22870,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22455,6 +22914,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22498,6 +22958,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22547,6 +23008,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22596,6 +23058,7 @@ "bgm_id": "9", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22645,6 +23108,7 @@ "bgm_id": "43", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22694,6 +23158,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22737,6 +23202,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22780,6 +23246,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22823,6 +23290,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22866,6 +23334,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22909,6 +23378,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22952,6 +23422,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -22995,6 +23466,7 @@ "bgm_id": "43", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -23044,6 +23516,7 @@ "bgm_id": "43", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -23093,6 +23566,7 @@ "bgm_id": "43", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -23142,6 +23616,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -23185,6 +23660,7 @@ "bgm_id": "redalert", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -23252,6 +23728,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -23295,6 +23772,7 @@ "bgm_id": "44", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -23344,6 +23822,7 @@ "bgm_id": "44", "special_battle_setting_id": 17, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -23398,6 +23877,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -23447,6 +23927,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -23490,6 +23971,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -23533,6 +24015,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -23576,6 +24059,7 @@ "bgm_id": "redalert", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -23634,6 +24118,7 @@ "bgm_id": "redalert", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -23692,6 +24177,7 @@ "bgm_id": "41", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -23750,6 +24236,7 @@ "bgm_id": "redalert", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -23804,6 +24291,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -23847,6 +24335,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -23890,6 +24379,7 @@ "bgm_id": "fiercefighting", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -23944,6 +24434,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -23987,6 +24478,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24030,6 +24522,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24079,6 +24572,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24122,6 +24616,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24165,6 +24660,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24208,6 +24704,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24251,6 +24748,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24294,6 +24792,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24337,6 +24836,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24380,6 +24880,7 @@ "bgm_id": "45", "special_battle_setting_id": 18, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24452,6 +24953,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24495,6 +24997,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24538,6 +25041,7 @@ "bgm_id": "41", "special_battle_setting_id": 19, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24637,6 +25141,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24680,6 +25185,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24729,6 +25235,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24772,6 +25279,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24821,6 +25329,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24864,6 +25373,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24907,6 +25417,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24950,6 +25461,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -24993,6 +25505,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25036,6 +25549,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25079,6 +25593,7 @@ "bgm_id": "9", "special_battle_setting_id": 20, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25128,6 +25643,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25171,6 +25687,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25214,6 +25731,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25257,6 +25775,7 @@ "bgm_id": "redalert", "special_battle_setting_id": 20, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25306,6 +25825,7 @@ "bgm_id": "9", "special_battle_setting_id": 20, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25355,6 +25875,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25404,6 +25925,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25447,6 +25969,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25490,6 +26013,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25533,6 +26057,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25576,6 +26101,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25619,6 +26145,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25662,6 +26189,7 @@ "bgm_id": "9", "special_battle_setting_id": 21, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25711,6 +26239,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25754,6 +26283,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25797,6 +26327,7 @@ "bgm_id": "9", "special_battle_setting_id": 22, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25846,6 +26377,7 @@ "bgm_id": "redalert", "special_battle_setting_id": 23, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25895,6 +26427,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25949,6 +26482,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -25992,6 +26526,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26035,6 +26570,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26078,6 +26614,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26121,6 +26658,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26164,6 +26702,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26207,6 +26746,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26250,6 +26790,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26293,6 +26834,7 @@ "bgm_id": "9", "special_battle_setting_id": 24, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26342,6 +26884,7 @@ "bgm_id": "9", "special_battle_setting_id": 25, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26391,6 +26934,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26434,6 +26978,7 @@ "bgm_id": "9", "special_battle_setting_id": 26, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26483,6 +27028,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26532,6 +27078,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26575,6 +27122,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26618,6 +27166,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26667,6 +27216,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26710,6 +27260,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26753,6 +27304,7 @@ "bgm_id": "9", "special_battle_setting_id": 27, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26802,6 +27354,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26845,6 +27398,7 @@ "bgm_id": "9", "special_battle_setting_id": 28, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26894,6 +27448,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26937,6 +27492,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -26980,6 +27536,7 @@ "bgm_id": "redalert", "special_battle_setting_id": 29, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27047,6 +27604,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27090,6 +27648,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27133,6 +27692,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27176,6 +27736,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27219,6 +27780,7 @@ "bgm_id": "51", "special_battle_setting_id": 30, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27273,6 +27835,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27316,6 +27879,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27365,6 +27929,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27408,6 +27973,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27451,6 +28017,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": "Select \"Head to the West Tower\" in Chapter 2", "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27494,6 +28061,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": "Clear Chapter 3 (Idol)", "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27537,6 +28105,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": "Clear Chapter 4 (Idol)", "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27580,6 +28149,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": "Clear Chapter 5 (Idol)", "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27623,6 +28193,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": "Select \"Look for Leads on Amaryllis\" in Chapter 2", "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27666,6 +28237,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": "Clear Chapter 3 (Princess)", "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27709,6 +28281,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": "Clear Chapter 4 (Princess)", "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27752,6 +28325,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": "Clear Chapter 5 (Princess)", "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27795,6 +28369,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": "Select \"Investigate Alicia's Absence\" in Chapter 2", "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27838,6 +28413,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": "Clear Chapter 3 (Sibyl)", "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27881,6 +28457,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": "Clear Chapter 6 (Idol), Chapter 6 (Princess), and Chapter 4 (Sibyl)", "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27930,6 +28507,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -27973,6 +28551,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": "Select \"Confront Lyelth\" in Chapter 8", "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28016,6 +28595,7 @@ "bgm_id": "61", "special_battle_setting_id": 31, "release_point": 0, + "unlock_text": "Clear Chapter 9 (Idol)", "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28065,6 +28645,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": "Clear Chapter 10 (Idol)", "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28108,6 +28689,7 @@ "bgm_id": "61", "special_battle_setting_id": 32, "release_point": 0, + "unlock_text": "Select \"Tackle Amaryllis's Curse\" in Chapter 8", "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28157,6 +28739,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": "Clear Chapter 9 (Princess)", "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28200,6 +28783,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": "Select \"Spend Time with Castelle\" in Chapter 8", "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28243,6 +28827,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": "Clear Chapter 9 (Sibyl)", "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28286,6 +28871,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": "Clear Chapter 11 (Idol), Chapter 10 (Princess), and Chapter 10 (Sibyl)", "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28329,6 +28915,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28372,6 +28959,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28415,6 +29003,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28464,6 +29053,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28507,6 +29097,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28550,6 +29141,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28599,6 +29191,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28642,6 +29235,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28685,6 +29279,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28734,6 +29329,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28777,6 +29373,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28820,6 +29417,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28863,6 +29461,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28906,6 +29505,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -28960,6 +29560,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29003,6 +29604,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29046,6 +29648,7 @@ "bgm_id": "redalert", "special_battle_setting_id": 33, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29095,6 +29698,7 @@ "bgm_id": "61", "special_battle_setting_id": 34, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29144,6 +29748,7 @@ "bgm_id": "redalert", "special_battle_setting_id": 35, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29198,6 +29803,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29241,6 +29847,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29284,6 +29891,7 @@ "bgm_id": "61", "special_battle_setting_id": 36, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29333,6 +29941,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29376,6 +29985,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29425,6 +30035,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29468,6 +30079,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29511,6 +30123,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29554,6 +30167,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29597,6 +30211,7 @@ "bgm_id": "71", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29651,6 +30266,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29694,6 +30310,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29737,6 +30354,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29780,6 +30398,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29823,6 +30442,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29866,6 +30486,7 @@ "bgm_id": "71", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29920,6 +30541,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -29963,6 +30585,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30006,6 +30629,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30049,6 +30673,7 @@ "bgm_id": "71", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30103,6 +30728,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30146,6 +30772,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30189,6 +30816,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30232,6 +30860,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30275,6 +30904,7 @@ "bgm_id": "71", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30329,6 +30959,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30372,6 +31003,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30415,6 +31047,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30458,6 +31091,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30501,6 +31135,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30544,6 +31179,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30587,6 +31223,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30641,6 +31278,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30684,6 +31322,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30727,6 +31366,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30770,6 +31410,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30813,6 +31454,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30856,6 +31498,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30899,6 +31542,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30942,6 +31586,7 @@ "bgm_id": "redalert", "special_battle_setting_id": 37, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -30991,6 +31636,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31040,6 +31686,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31083,6 +31730,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31126,6 +31774,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31169,6 +31818,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31212,6 +31862,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31255,6 +31906,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31298,6 +31950,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31341,6 +31994,7 @@ "bgm_id": "lastbattle", "special_battle_setting_id": 38, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31395,6 +32049,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31438,6 +32093,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31481,6 +32137,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31524,6 +32181,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31567,6 +32225,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31610,6 +32269,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31653,6 +32313,7 @@ "bgm_id": "41", "special_battle_setting_id": 39, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31729,6 +32390,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31778,6 +32440,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31821,6 +32484,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31864,6 +32528,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31907,6 +32572,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31950,6 +32616,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -31993,6 +32660,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32036,6 +32704,7 @@ "bgm_id": "redalert", "special_battle_setting_id": 40, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32085,6 +32754,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32134,6 +32804,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32177,6 +32848,7 @@ "bgm_id": "76", "special_battle_setting_id": 41, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32226,6 +32898,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32269,6 +32942,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32312,6 +32986,7 @@ "bgm_id": "76", "special_battle_setting_id": 42, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32429,6 +33104,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32478,6 +33154,7 @@ "bgm_id": "", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32521,6 +33198,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32564,6 +33242,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32607,6 +33286,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32650,6 +33330,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32693,6 +33374,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32736,6 +33418,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32779,6 +33462,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32822,6 +33506,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32865,6 +33550,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32908,6 +33594,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32951,6 +33638,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -32994,6 +33682,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -33037,6 +33726,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -33080,6 +33770,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -33123,6 +33814,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, @@ -33166,6 +33858,7 @@ "bgm_id": "0", "special_battle_setting_id": null, "release_point": 0, + "unlock_text": null, "is_maintenance_chapter": false, "is_play_another_end_appearance_animation": false, "is_released_another_end": false, diff --git a/SVSim.Bootstrap/Data/story/sections.json b/SVSim.Bootstrap/Data/story/sections.json index d7b7a89..fa32aad 100644 --- a/SVSim.Bootstrap/Data/story/sections.json +++ b/SVSim.Bootstrap/Data/story/sections.json @@ -12,7 +12,9 @@ "chapter_select_type": 1, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 1, @@ -27,7 +29,9 @@ "chapter_select_type": 1, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 2, @@ -42,7 +46,9 @@ "chapter_select_type": 1, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 3, @@ -57,7 +63,9 @@ "chapter_select_type": 1, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 4, @@ -72,7 +80,9 @@ "chapter_select_type": 1, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 5, @@ -87,7 +97,9 @@ "chapter_select_type": 1, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 6, @@ -102,7 +114,9 @@ "chapter_select_type": 1, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 7, @@ -117,7 +131,9 @@ "chapter_select_type": 1, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 8, @@ -132,7 +148,9 @@ "chapter_select_type": 1, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 9, @@ -147,7 +165,9 @@ "chapter_select_type": 1, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 10, @@ -162,7 +182,9 @@ "chapter_select_type": 1, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 11, @@ -177,7 +199,9 @@ "chapter_select_type": 1, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 12, @@ -192,7 +216,9 @@ "chapter_select_type": 1, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 13, @@ -207,7 +233,9 @@ "chapter_select_type": 1, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 14, @@ -222,7 +250,9 @@ "chapter_select_type": 1, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 15, @@ -237,7 +267,9 @@ "chapter_select_type": 1, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 16, @@ -252,7 +284,9 @@ "chapter_select_type": 1, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 17, @@ -267,7 +301,9 @@ "chapter_select_type": 2, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 18, @@ -282,7 +318,9 @@ "chapter_select_type": 2, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 19, @@ -297,7 +335,9 @@ "chapter_select_type": 1, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 20, @@ -312,7 +352,9 @@ "chapter_select_type": 1, "story_type_overwrite": 1, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": "" }, { "id": 9001, @@ -327,7 +369,9 @@ "chapter_select_type": 1, "story_type_overwrite": 2, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 1, + "spoiler_message": "story_section_04" }, { "id": 9002, @@ -342,7 +386,9 @@ "chapter_select_type": 1, "story_type_overwrite": 2, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 1, + "spoiler_message": "story_section_09" }, { "id": 9003, @@ -357,7 +403,9 @@ "chapter_select_type": 1, "story_type_overwrite": 2, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 1, + "spoiler_message": "story_section_14" }, { "id": 9005, @@ -372,6 +420,8 @@ "chapter_select_type": 2, "story_type_overwrite": 2, "is_under_maintenance": false, - "is_play_another_end_appearance_animation": false + "is_play_another_end_appearance_animation": false, + "is_spoiler": 0, + "spoiler_message": null } ] \ No newline at end of file diff --git a/SVSim.Bootstrap/Importers/StoryImporter.cs b/SVSim.Bootstrap/Importers/StoryImporter.cs index 76f6ea0..9549078 100644 --- a/SVSim.Bootstrap/Importers/StoryImporter.cs +++ b/SVSim.Bootstrap/Importers/StoryImporter.cs @@ -140,6 +140,8 @@ public class StoryImporter row.ChapterSelectType = s.ChapterSelectType; row.StoryTypeOverwrite = s.StoryTypeOverwrite; row.IsUnderMaintenance = s.IsUnderMaintenance; row.IsPlayAnotherEndAppearanceAnimation = s.IsPlayAnotherEndAppearanceAnimation; + row.IsSpoiler = s.IsSpoiler; + row.SpoilerMessage = s.SpoilerMessage ?? string.Empty; return row; } @@ -160,7 +162,7 @@ public class StoryImporter row.ChapterEffectPath = c.ChapterEffectPath; row.ChapterClearTextId = c.ChapterClearTextId; row.Battle3dFieldId = c.Battle3dFieldId; row.BgmId = c.BgmId ?? ""; row.SpecialBattleSettingId = c.SpecialBattleSettingId; - row.ReleasePoint = c.ReleasePoint; row.IsMaintenanceChapter = c.IsMaintenanceChapter; + row.ReleasePoint = c.ReleasePoint; row.UnlockText = c.UnlockText; row.IsMaintenanceChapter = c.IsMaintenanceChapter; row.IsPlayAnotherEndAppearanceAnimation = c.IsPlayAnotherEndAppearanceAnimation; row.IsReleasedAnotherEnd = c.IsReleasedAnotherEnd; row.IsSkipEnabled = c.IsSkipEnabled; @@ -233,6 +235,8 @@ public class StoryImporter public int ChapterSelectType { get; set; } public int StoryTypeOverwrite { get; set; } public bool IsUnderMaintenance { get; set; } public bool IsPlayAnotherEndAppearanceAnimation { get; set; } + public int IsSpoiler { get; set; } + public string? SpoilerMessage { get; set; } } private class ChapterInput { @@ -251,7 +255,8 @@ public class StoryImporter public int Battle3dFieldId { get; set; } public string? BgmId { get; set; } public int? SpecialBattleSettingId { get; set; } - public int ReleasePoint { get; set; } public bool IsMaintenanceChapter { get; set; } + public int ReleasePoint { get; set; } public string? UnlockText { get; set; } + public bool IsMaintenanceChapter { get; set; } public bool IsPlayAnotherEndAppearanceAnimation { get; set; } public bool IsReleasedAnotherEnd { get; set; } public bool IsSkipEnabled { get; set; } public List? BattleSettings { get; set; } diff --git a/SVSim.Database/Entities/Story/StoryChapter.cs b/SVSim.Database/Entities/Story/StoryChapter.cs index a72f529..5004131 100644 --- a/SVSim.Database/Entities/Story/StoryChapter.cs +++ b/SVSim.Database/Entities/Story/StoryChapter.cs @@ -39,6 +39,7 @@ public class StoryChapter public SpecialBattleSetting? SpecialBattleSetting { get; set; } public int ReleasePoint { get; set; } + public string? UnlockText { get; set; } public bool IsMaintenanceChapter { get; set; } public bool IsPlayAnotherEndAppearanceAnimation { get; set; } public bool IsReleasedAnotherEnd { get; set; } diff --git a/SVSim.Database/Entities/Story/StorySection.cs b/SVSim.Database/Entities/Story/StorySection.cs index 4e9be03..c286a42 100644 --- a/SVSim.Database/Entities/Story/StorySection.cs +++ b/SVSim.Database/Entities/Story/StorySection.cs @@ -23,4 +23,7 @@ public class StorySection public int StoryTypeOverwrite { get; set; } public bool IsUnderMaintenance { get; set; } public bool IsPlayAnotherEndAppearanceAnimation { get; set; } + + public int IsSpoiler { get; set; } + public string SpoilerMessage { get; set; } = string.Empty; } diff --git a/SVSim.Database/Migrations/20260525212450_AddStoryChapterUnlockText.Designer.cs b/SVSim.Database/Migrations/20260525212450_AddStoryChapterUnlockText.Designer.cs new file mode 100644 index 0000000..5185bb4 --- /dev/null +++ b/SVSim.Database/Migrations/20260525212450_AddStoryChapterUnlockText.Designer.cs @@ -0,0 +1,2579 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; +using SVSim.Database; + +#nullable disable + +namespace SVSim.Database.Migrations +{ + [DbContext(typeof(SVSimDbContext))] + [Migration("20260525212450_AddStoryChapterUnlockText")] + partial class AddStoryChapterUnlockText + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.8") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.HasSequence("ShortUdidSequence") + .StartsAt(400000000L); + + modelBuilder.Entity("DegreeEntryViewer", b => + { + b.Property("DegreesId") + .HasColumnType("integer"); + + b.Property("ViewersId") + .HasColumnType("bigint"); + + b.HasKey("DegreesId", "ViewersId"); + + b.HasIndex("ViewersId"); + + b.ToTable("DegreeEntryViewer"); + }); + + modelBuilder.Entity("EmblemEntryViewer", b => + { + b.Property("EmblemsId") + .HasColumnType("integer"); + + b.Property("ViewersId") + .HasColumnType("bigint"); + + b.HasKey("EmblemsId", "ViewersId"); + + b.HasIndex("ViewersId"); + + b.ToTable("EmblemEntryViewer"); + }); + + modelBuilder.Entity("LeaderSkinEntryViewer", b => + { + b.Property("LeaderSkinsId") + .HasColumnType("integer"); + + b.Property("ViewersId") + .HasColumnType("bigint"); + + b.HasKey("LeaderSkinsId", "ViewersId"); + + b.HasIndex("ViewersId"); + + b.ToTable("LeaderSkinEntryViewer"); + }); + + modelBuilder.Entity("MyPageBackgroundEntryViewer", b => + { + b.Property("MyPageBackgroundsId") + .HasColumnType("integer"); + + b.Property("ViewersId") + .HasColumnType("bigint"); + + b.HasKey("MyPageBackgroundsId", "ViewersId"); + + b.HasIndex("ViewersId"); + + b.ToTable("MyPageBackgroundEntryViewer"); + }); + + modelBuilder.Entity("SVSim.Database.Entities.Story.SpecialBattleSetting", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("BanishEffectOverride") + .IsRequired() + .HasColumnType("text"); + + b.Property("ClassDestroyEffectOverride") + .HasColumnType("integer"); + + b.Property("EnemyAttachSkill") + .IsRequired() + .HasColumnType("text"); + + b.Property("EnemyStartLife") + .HasColumnType("integer"); + + b.Property("EnemyStartPp") + .HasColumnType("integer"); + + b.Property("IdOverrideInBattleLog") + .IsRequired() + .HasColumnType("text"); + + b.Property("Note") + .HasColumnType("text"); + + b.Property("PlayerAttachSkill") + .IsRequired() + .HasColumnType("text"); + + b.Property("PlayerFirstTurn") + .HasColumnType("integer"); + + b.Property("PlayerStartLife") + .HasColumnType("integer"); + + b.Property("PlayerStartPp") + .HasColumnType("integer"); + + b.Property("ResultSkip") + .HasColumnType("integer"); + + b.Property("SpecialTokenDrawEffectOverride") + .IsRequired() + .HasColumnType("text"); + + b.Property("TokenDrawEffectOverride") + .IsRequired() + .HasColumnType("text"); + + b.Property("VsEffectOverride") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("SpecialBattleSettings"); + }); + + modelBuilder.Entity("SVSim.Database.Entities.Story.StoryChapter", b => + { + b.Property("StoryId") + .HasColumnType("integer"); + + b.Property("Battle3dFieldId") + .HasColumnType("integer"); + + b.Property("BattleExists") + .HasColumnType("boolean"); + + b.Property("BgFileName") + .IsRequired() + .HasColumnType("text"); + + b.Property("BgmId") + .IsRequired() + .HasColumnType("text"); + + b.Property("ChapterClearTextId") + .HasColumnType("text"); + + b.Property("ChapterEffectPath") + .HasColumnType("text"); + + b.Property("ChapterId") + .IsRequired() + .HasColumnType("text"); + + b.Property("CharaId") + .HasColumnType("integer"); + + b.Property("EnemyAiId") + .HasColumnType("integer"); + + b.Property("EnemyCharaId") + .HasColumnType("integer"); + + b.Property("EnemyClass") + .HasColumnType("integer"); + + b.Property("IsCameraMovable") + .HasColumnType("integer"); + + b.Property("IsMaintenanceChapter") + .HasColumnType("boolean"); + + b.Property("IsPlayAnotherEndAppearanceAnimation") + .HasColumnType("boolean"); + + b.Property("IsReleasedAnotherEnd") + .HasColumnType("boolean"); + + b.Property("IsSkipEnabled") + .HasColumnType("boolean"); + + b.Property("NextChapterId") + .IsRequired() + .HasColumnType("text"); + + b.Property("ReleasePoint") + .HasColumnType("integer"); + + b.Property("RequiredChapterId") + .HasColumnType("text"); + + b.Property("SectionId") + .HasColumnType("integer"); + + b.Property("SelectionDisplayPosition") + .HasColumnType("text"); + + b.Property("SelectionTextId") + .HasColumnType("text"); + + b.Property("ShowCoordinate") + .HasColumnType("integer"); + + b.Property("ShowSubtitles") + .HasColumnType("integer"); + + b.Property("SpecialBattleSettingId") + .HasColumnType("integer"); + + b.Property("UnlockText") + .HasColumnType("text"); + + b.Property("XCoordinate") + .HasColumnType("numeric"); + + b.Property("YCoordinate") + .HasColumnType("numeric"); + + b.HasKey("StoryId"); + + b.HasIndex("NextChapterId"); + + b.HasIndex("SpecialBattleSettingId"); + + b.HasIndex("SectionId", "CharaId", "ChapterId"); + + b.ToTable("StoryChapters"); + }); + + modelBuilder.Entity("SVSim.Database.Entities.Story.StorySection", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("AllStoryOrderId") + .HasColumnType("integer"); + + b.Property("BackGroundId") + .HasColumnType("integer"); + + b.Property("ChapterSelectType") + .HasColumnType("integer"); + + b.Property("ImageName") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsLeaderSelect") + .HasColumnType("boolean"); + + b.Property("IsPlayAnotherEndAppearanceAnimation") + .HasColumnType("boolean"); + + b.Property("IsUnderMaintenance") + .HasColumnType("boolean"); + + b.Property("NameTextKey") + .IsRequired() + .HasColumnType("text"); + + b.Property("OrderId") + .HasColumnType("integer"); + + b.Property("StoryApiType") + .HasColumnType("integer"); + + b.Property("StoryTypeOverwrite") + .HasColumnType("integer"); + + b.Property("WorldId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("WorldId"); + + b.ToTable("StorySections"); + }); + + modelBuilder.Entity("SVSim.Database.Entities.Story.StoryWorld", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("PanelImageName") + .IsRequired() + .HasColumnType("text"); + + b.Property("RibbonText") + .IsRequired() + .HasColumnType("text"); + + b.Property("TitleTextKey") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("StoryWorlds"); + }); + + modelBuilder.Entity("SVSim.Database.Entities.Story.ViewerStoryBranchUnlock", b => + { + b.Property("ViewerId") + .HasColumnType("bigint"); + + b.Property("StoryId") + .HasColumnType("integer"); + + b.Property("UnlockedAt") + .HasColumnType("timestamp with time zone"); + + b.HasKey("ViewerId", "StoryId"); + + b.ToTable("ViewerStoryBranchUnlocks"); + }); + + modelBuilder.Entity("SVSim.Database.Entities.Story.ViewerStoryProgress", b => + { + b.Property("ViewerId") + .HasColumnType("bigint"); + + b.Property("StoryId") + .HasColumnType("integer"); + + b.Property("FinishedAt") + .HasColumnType("timestamp with time zone"); + + b.Property("IsFinish") + .HasColumnType("boolean"); + + b.Property("IsSkipped") + .HasColumnType("boolean"); + + b.Property("SkippedAt") + .HasColumnType("timestamp with time zone"); + + b.HasKey("ViewerId", "StoryId"); + + b.ToTable("ViewerStoryProgress"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ArenaSeasonConfig", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("Cost") + .HasColumnType("numeric(20,0)"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("Enable") + .HasColumnType("integer"); + + b.Property("FormatInfo") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("IsJoin") + .HasColumnType("boolean"); + + b.Property("Mode") + .HasColumnType("integer"); + + b.Property("RupyCost") + .HasColumnType("numeric(20,0)"); + + b.Property("TicketCost") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("ArenaSeasons"); + }); + + modelBuilder.Entity("SVSim.Database.Models.AvatarAbilityEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("Ability") + .IsRequired() + .HasColumnType("text"); + + b.Property("AbilityCost") + .IsRequired() + .HasColumnType("text"); + + b.Property("AbilityDesc") + .IsRequired() + .HasColumnType("text"); + + b.Property("BattleStartFirstPlayerTurnBp") + .HasColumnType("integer"); + + b.Property("BattleStartMaxLife") + .HasColumnType("integer"); + + b.Property("BattleStartSecondPlayerTurnBp") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("LeaderSkinId") + .HasColumnType("integer"); + + b.Property("PassiveAbility") + .IsRequired() + .HasColumnType("text"); + + b.Property("PassiveAbilityDesc") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("AvatarAbilities"); + }); + + modelBuilder.Entity("SVSim.Database.Models.BannerEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("ChangeTime") + .HasColumnType("integer"); + + b.Property("Click") + .IsRequired() + .HasColumnType("text"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("ImageName") + .IsRequired() + .HasColumnType("text"); + + b.Property("ImagePaths") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("RemainingTime") + .HasColumnType("integer"); + + b.Property("Status") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Banners"); + }); + + modelBuilder.Entity("SVSim.Database.Models.BattlePassLevelEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("Level") + .HasColumnType("integer"); + + b.Property("RewardData") + .IsRequired() + .HasColumnType("jsonb"); + + b.HasKey("Id"); + + b.ToTable("BattlePassLevels"); + }); + + modelBuilder.Entity("SVSim.Database.Models.BattlefieldEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("IsOpen") + .HasColumnType("boolean"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Battlefields"); + }); + + modelBuilder.Entity("SVSim.Database.Models.CardCosmeticReward", b => + { + b.Property("CardId") + .HasColumnType("bigint"); + + b.Property("Type") + .HasColumnType("integer"); + + b.Property("CosmeticId") + .HasColumnType("bigint"); + + b.Property("Quantity") + .HasColumnType("integer"); + + b.HasKey("CardId", "Type", "CosmeticId"); + + b.HasIndex("CardId"); + + b.ToTable("CardCosmeticRewards"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ClassEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Classes"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ClassExpEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("NecessaryExp") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("ClassExpCurve"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ColosseumConfig", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("CardPoolName") + .IsRequired() + .HasColumnType("text"); + + b.Property("ColosseumId") + .IsRequired() + .HasColumnType("text"); + + b.Property("ColosseumName") + .IsRequired() + .HasColumnType("text"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("DeckFormat") + .IsRequired() + .HasColumnType("text"); + + b.Property("EndTime") + .HasColumnType("timestamp with time zone"); + + b.Property("IsAllCardEnabled") + .HasColumnType("integer"); + + b.Property("IsColosseumPeriod") + .HasColumnType("boolean"); + + b.Property("IsDisplayTips") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsNormalTwoPick") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsRoundPeriod") + .HasColumnType("boolean"); + + b.Property("IsSpecialMode") + .IsRequired() + .HasColumnType("text"); + + b.Property("NowRound") + .IsRequired() + .HasColumnType("text"); + + b.Property("SalesPeriodInfo") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("StartTime") + .HasColumnType("timestamp with time zone"); + + b.Property("TipsId") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Colosseums"); + }); + + modelBuilder.Entity("SVSim.Database.Models.DailyLoginBonusEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("BonusData") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("BonusId") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("DailyLoginBonuses"); + }); + + modelBuilder.Entity("SVSim.Database.Models.DefaultDeckEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("CardIdArray") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("ClassId") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("DeckName") + .IsRequired() + .HasColumnType("text"); + + b.Property("DeckNo") + .HasColumnType("integer"); + + b.Property("LeaderSkinId") + .HasColumnType("integer"); + + b.Property("SleeveId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("DefaultDecks"); + }); + + modelBuilder.Entity("SVSim.Database.Models.DefaultLeaderSkinSettingEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("ClassId") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("IsRandomLeaderSkin") + .HasColumnType("integer"); + + b.Property("LeaderSkinId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("DefaultLeaderSkinSettings"); + }); + + modelBuilder.Entity("SVSim.Database.Models.DegreeEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("Degrees"); + }); + + modelBuilder.Entity("SVSim.Database.Models.EmblemEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("Emblems"); + }); + + modelBuilder.Entity("SVSim.Database.Models.FeatureMaintenanceEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("Data") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("FeatureKey") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("FeatureMaintenances"); + }); + + modelBuilder.Entity("SVSim.Database.Models.GameConfigSection", b => + { + b.Property("SectionName") + .HasColumnType("text"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("ValueJson") + .IsRequired() + .HasColumnType("jsonb"); + + b.HasKey("SectionName"); + + b.ToTable("GameConfigs"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ItemEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Items"); + }); + + modelBuilder.Entity("SVSim.Database.Models.LeaderSkinEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("ClassId") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("EmoteId") + .HasColumnType("integer"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("ClassId"); + + b.ToTable("LeaderSkins"); + }); + + modelBuilder.Entity("SVSim.Database.Models.LoadingExclusionCardEntry", b => + { + b.Property("Id") + .HasColumnType("bigint"); + + b.Property("CardId") + .HasColumnType("bigint"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("LoadingExclusionCards"); + }); + + modelBuilder.Entity("SVSim.Database.Models.MaintenanceCardEntry", b => + { + b.Property("Id") + .HasColumnType("bigint"); + + b.Property("CardId") + .HasColumnType("bigint"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("MaintenanceCards"); + }); + + modelBuilder.Entity("SVSim.Database.Models.MasterPointRankingPeriodEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("BeginTime") + .HasColumnType("timestamp with time zone"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("EndTime") + .HasColumnType("timestamp with time zone"); + + b.Property("NecessaryScore") + .HasColumnType("bigint"); + + b.Property("PeriodNum") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("MasterPointRankingPeriods"); + }); + + modelBuilder.Entity("SVSim.Database.Models.MyPageBackgroundEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("MyPageBackgrounds"); + }); + + modelBuilder.Entity("SVSim.Database.Models.MyRotationAbilityEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("AbilityId") + .HasColumnType("integer"); + + b.Property("Data") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("MyRotationAbilities"); + }); + + modelBuilder.Entity("SVSim.Database.Models.MyRotationSettingEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("AbilitiesCsv") + .IsRequired() + .HasColumnType("text"); + + b.Property("CardSetIdsCsv") + .IsRequired() + .HasColumnType("text"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("ReprintedCardIds") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("RestrictedCardIds") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("RotationId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("MyRotationSettings"); + }); + + modelBuilder.Entity("SVSim.Database.Models.PackConfigEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("BasePackId") + .HasColumnType("integer"); + + b.Property("CommenceDate") + .HasColumnType("timestamp with time zone"); + + b.Property("CompleteDate") + .HasColumnType("timestamp with time zone"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("GachaDetail") + .IsRequired() + .HasColumnType("text"); + + b.Property("GachaType") + .HasColumnType("integer"); + + b.Property("IsHide") + .HasColumnType("boolean"); + + b.Property("IsNew") + .HasColumnType("boolean"); + + b.Property("IsPreRelease") + .HasColumnType("boolean"); + + b.Property("OpenCountLimit") + .HasColumnType("integer"); + + b.Property("OverrideDrawEffectPackId") + .HasColumnType("integer"); + + b.Property("OverrideUiEffectPackId") + .HasColumnType("integer"); + + b.Property("PackCategory") + .HasColumnType("integer"); + + b.Property("PosterType") + .HasColumnType("integer"); + + b.Property("SalesPeriodTime") + .HasColumnType("timestamp with time zone"); + + b.Property("SleeveId") + .HasColumnType("integer"); + + b.Property("SpecialSleeveId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("Packs"); + }); + + modelBuilder.Entity("SVSim.Database.Models.PaymentItemEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("ChargeCrystalNum") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("EndTime") + .HasColumnType("timestamp with time zone"); + + b.Property("FreeCrystalNum") + .HasColumnType("integer"); + + b.Property("ImageName") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsResaleProduct") + .HasColumnType("integer"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("Price") + .HasColumnType("numeric"); + + b.Property("ProductId") + .HasColumnType("integer"); + + b.Property("PurchaseLimit") + .HasColumnType("integer"); + + b.Property("RemainingTime") + .HasColumnType("integer"); + + b.Property("ResaleStartDate") + .HasColumnType("timestamp with time zone"); + + b.Property("SpecialShopFlag") + .HasColumnType("integer"); + + b.Property("StartTime") + .HasColumnType("timestamp with time zone"); + + b.Property("StoreProductId") + .HasColumnType("bigint"); + + b.Property("Text") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("PaymentItems"); + }); + + modelBuilder.Entity("SVSim.Database.Models.PracticeOpponentEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("AiDeckLevel") + .HasColumnType("integer"); + + b.Property("AiLogicLevel") + .HasColumnType("integer"); + + b.Property("AiMaxLife") + .HasColumnType("integer"); + + b.Property("Battle3dFieldId") + .IsRequired() + .HasColumnType("text"); + + b.Property("CharaId") + .HasColumnType("integer"); + + b.Property("ClassId") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("DegreeId") + .HasColumnType("integer"); + + b.Property("IsCampaignPractice") + .HasColumnType("boolean"); + + b.Property("IsMaintenance") + .HasColumnType("boolean"); + + b.Property("PracticeId") + .HasColumnType("integer"); + + b.Property("TextId") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("PracticeOpponents"); + }); + + modelBuilder.Entity("SVSim.Database.Models.PreReleaseInfo", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("CardMasterId") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("DefaultCardMasterId") + .IsRequired() + .HasColumnType("text"); + + b.Property("DisplayEndTime") + .HasColumnType("timestamp with time zone"); + + b.Property("EndTime") + .HasColumnType("timestamp with time zone"); + + b.Property("FreeMatchStartTime") + .HasColumnType("timestamp with time zone"); + + b.Property("IsPreRotationFreeMatchTerm") + .HasColumnType("boolean"); + + b.Property("LatestReprintedBaseCardIds") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("NextCardSetId") + .IsRequired() + .HasColumnType("text"); + + b.Property("PreReleaseCardMasterId") + .IsRequired() + .HasColumnType("text"); + + b.Property("PreReleaseId") + .IsRequired() + .HasColumnType("text"); + + b.Property("ReprintedBaseCardIds") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("RotationCardSetIdList") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("StartTime") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("PreReleaseInfos"); + }); + + modelBuilder.Entity("SVSim.Database.Models.PuzzleEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("GroupId") + .HasColumnType("integer"); + + b.Property("IsAdditional") + .HasColumnType("boolean"); + + b.Property("IsPlayable") + .HasColumnType("boolean"); + + b.Property("PuzzleDifficulty") + .HasColumnType("integer"); + + b.Property("PuzzleId") + .HasColumnType("integer"); + + b.Property("ReleaseConditionTextId") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("GroupId"); + + b.ToTable("Puzzles"); + }); + + modelBuilder.Entity("SVSim.Database.Models.PuzzleGroupEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("BasicTitleTextId") + .IsRequired() + .HasColumnType("text"); + + b.Property("CharaId") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("DifficultyNameListJson") + .IsRequired() + .HasColumnType("text"); + + b.Property("PuzzleCharaId") + .HasColumnType("integer"); + + b.Property("PuzzleMasterId") + .HasColumnType("integer"); + + b.Property("SortType") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("PuzzleGroups"); + }); + + modelBuilder.Entity("SVSim.Database.Models.PuzzleMissionEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("AchievedMessage") + .IsRequired() + .HasColumnType("text"); + + b.Property("CampaignCommenceTime") + .HasColumnType("bigint"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("MissionName") + .IsRequired() + .HasColumnType("text"); + + b.Property("OrderId") + .HasColumnType("integer"); + + b.Property("RequireNumber") + .HasColumnType("integer"); + + b.Property("RewardDetailId") + .HasColumnType("bigint"); + + b.Property("RewardNumber") + .HasColumnType("integer"); + + b.Property("RewardType") + .HasColumnType("integer"); + + b.Property("TargetPuzzleGroupId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("PuzzleMissions"); + }); + + modelBuilder.Entity("SVSim.Database.Models.RankInfoEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("AccumulateMasterPoint") + .HasColumnType("integer"); + + b.Property("AccumulatePoint") + .HasColumnType("integer"); + + b.Property("BaseAddBp") + .HasColumnType("integer"); + + b.Property("BaseDropBp") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("IsPromotionWar") + .HasColumnType("integer"); + + b.Property("LoseBonus") + .HasColumnType("double precision"); + + b.Property("LowerLimitPoint") + .HasColumnType("integer"); + + b.Property("MatchCount") + .HasColumnType("integer"); + + b.Property("MaxLoseBonus") + .HasColumnType("integer"); + + b.Property("MaxWinBonus") + .HasColumnType("integer"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("NecessaryPoint") + .HasColumnType("integer"); + + b.Property("NecessaryWin") + .HasColumnType("integer"); + + b.Property("ResetLose") + .HasColumnType("integer"); + + b.Property("StreakBonusPt") + .HasColumnType("integer"); + + b.Property("WinBonus") + .HasColumnType("double precision"); + + b.HasKey("Id"); + + b.ToTable("RankInfo"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ReprintedCardEntry", b => + { + b.Property("Id") + .HasColumnType("bigint"); + + b.Property("CardId") + .HasColumnType("bigint"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("ReprintedCards"); + }); + + modelBuilder.Entity("SVSim.Database.Models.SealedConfig", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("CrystalCost") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("DeckUsingNumMin") + .HasColumnType("integer"); + + b.Property("Enable") + .HasColumnType("integer"); + + b.Property("IsDeckCodeMaintenance") + .HasColumnType("boolean"); + + b.Property("IsJoin") + .HasColumnType("boolean"); + + b.Property("PackInfo") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("RupyCost") + .HasColumnType("integer"); + + b.Property("SalesPeriodInfo") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("ScheduleId") + .HasColumnType("integer"); + + b.Property("TicketCost") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("SealedSeasons"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ShadowverseCardEntry", b => + { + b.Property("Id") + .HasColumnType("bigint"); + + b.Property("Attack") + .HasColumnType("integer"); + + b.Property("ClassId") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("Defense") + .HasColumnType("integer"); + + b.Property("IsFoil") + .HasColumnType("boolean"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("PrimaryResourceCost") + .HasColumnType("integer"); + + b.Property("Rarity") + .HasColumnType("integer"); + + b.Property("ShadowverseCardSetEntryId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ClassId"); + + b.HasIndex("ShadowverseCardSetEntryId"); + + b.ToTable("Cards"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ShadowverseCardSetEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("IsBasic") + .HasColumnType("boolean"); + + b.Property("IsInRotation") + .HasColumnType("boolean"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("CardSets"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ShadowverseDeckEntry", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ClassId") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("Format") + .HasColumnType("integer"); + + b.Property("LeaderSkinId") + .HasColumnType("integer"); + + b.Property("MyRotationId") + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("Number") + .HasColumnType("integer"); + + b.Property("RandomLeaderSkin") + .HasColumnType("boolean"); + + b.Property("SleeveId") + .HasColumnType("integer"); + + b.Property("ViewerId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("ClassId"); + + b.HasIndex("LeaderSkinId"); + + b.HasIndex("SleeveId"); + + b.HasIndex("ViewerId"); + + b.ToTable("Decks"); + }); + + modelBuilder.Entity("SVSim.Database.Models.SleeveEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("Sleeves"); + }); + + modelBuilder.Entity("SVSim.Database.Models.SpecialDeckFormatEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("DeckFormat") + .IsRequired() + .HasColumnType("text"); + + b.Property("EndTime") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("SpecialDeckFormats"); + }); + + modelBuilder.Entity("SVSim.Database.Models.SpotCardEntry", b => + { + b.Property("Id") + .HasColumnType("bigint"); + + b.Property("CardId") + .HasColumnType("bigint"); + + b.Property("Cost") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("SpotCards"); + }); + + modelBuilder.Entity("SVSim.Database.Models.UnlimitedRestrictionEntry", b => + { + b.Property("Id") + .HasColumnType("bigint"); + + b.Property("CardId") + .HasColumnType("bigint"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("RestrictionValue") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("UnlimitedRestrictions"); + }); + + modelBuilder.Entity("SVSim.Database.Models.Viewer", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("DisplayName") + .IsRequired() + .HasColumnType("text"); + + b.Property("LastLogin") + .HasColumnType("timestamp with time zone"); + + b.Property("ShortUdid") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasDefaultValueSql("nextval('\"ShortUdidSequence\"')"); + + NpgsqlPropertyBuilderExtensions.UseSequence(b.Property("ShortUdid"), "ShortUdidSequence"); + + b.HasKey("Id"); + + b.HasIndex("ShortUdid"); + + b.ToTable("Viewers"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ViewerPuzzleClear", b => + { + b.Property("ViewerId") + .HasColumnType("bigint"); + + b.Property("PuzzleId") + .HasColumnType("integer"); + + b.Property("BestRetryCount") + .HasColumnType("integer"); + + b.Property("ClearedAt") + .HasColumnType("timestamp with time zone"); + + b.HasKey("ViewerId", "PuzzleId"); + + b.ToTable("ViewerPuzzleClears"); + }); + + modelBuilder.Entity("SleeveEntryViewer", b => + { + b.Property("SleevesId") + .HasColumnType("integer"); + + b.Property("ViewersId") + .HasColumnType("bigint"); + + b.HasKey("SleevesId", "ViewersId"); + + b.HasIndex("ViewersId"); + + b.ToTable("SleeveEntryViewer"); + }); + + modelBuilder.Entity("DegreeEntryViewer", b => + { + b.HasOne("SVSim.Database.Models.DegreeEntry", null) + .WithMany() + .HasForeignKey("DegreesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SVSim.Database.Models.Viewer", null) + .WithMany() + .HasForeignKey("ViewersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("EmblemEntryViewer", b => + { + b.HasOne("SVSim.Database.Models.EmblemEntry", null) + .WithMany() + .HasForeignKey("EmblemsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SVSim.Database.Models.Viewer", null) + .WithMany() + .HasForeignKey("ViewersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("LeaderSkinEntryViewer", b => + { + b.HasOne("SVSim.Database.Models.LeaderSkinEntry", null) + .WithMany() + .HasForeignKey("LeaderSkinsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SVSim.Database.Models.Viewer", null) + .WithMany() + .HasForeignKey("ViewersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("MyPageBackgroundEntryViewer", b => + { + b.HasOne("SVSim.Database.Models.MyPageBackgroundEntry", null) + .WithMany() + .HasForeignKey("MyPageBackgroundsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SVSim.Database.Models.Viewer", null) + .WithMany() + .HasForeignKey("ViewersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("SVSim.Database.Entities.Story.StoryChapter", b => + { + b.HasOne("SVSim.Database.Entities.Story.StorySection", "Section") + .WithMany() + .HasForeignKey("SectionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SVSim.Database.Entities.Story.SpecialBattleSetting", "SpecialBattleSetting") + .WithMany() + .HasForeignKey("SpecialBattleSettingId"); + + b.OwnsMany("SVSim.Database.Entities.Story.StoryChapterBattleSetting", "BattleSettings", b1 => + { + b1.Property("StoryId") + .HasColumnType("integer"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("Battle3dFieldIdOverride") + .HasColumnType("integer"); + + b1.Property("BgmIdOverride") + .HasColumnType("integer"); + + b1.Property("DeckClassId") + .HasColumnType("integer"); + + b1.Property("DeckSkinIdOverride") + .HasColumnType("integer"); + + b1.Property("EnemyEmotionOverride") + .HasColumnType("integer"); + + b1.Property("PlayerEmotionOverride") + .HasColumnType("integer"); + + b1.Property("SkinIdOverride") + .HasColumnType("integer"); + + b1.HasKey("StoryId", "Id"); + + b1.ToTable("StoryChapterBattleSetting"); + + b1.WithOwner() + .HasForeignKey("StoryId"); + }); + + b.OwnsMany("SVSim.Database.Entities.Story.StoryChapterReward", "Rewards", b1 => + { + b1.Property("StoryId") + .HasColumnType("integer"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("RewardDetailId") + .HasColumnType("bigint"); + + b1.Property("RewardNumber") + .HasColumnType("integer"); + + b1.Property("RewardType") + .HasColumnType("integer"); + + b1.HasKey("StoryId", "Id"); + + b1.ToTable("StoryChapterReward"); + + b1.WithOwner() + .HasForeignKey("StoryId"); + }); + + b.OwnsMany("SVSim.Database.Entities.Story.StorySubChapter", "SubChapters", b1 => + { + b1.Property("StoryId") + .HasColumnType("integer"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("IsMaintenanceChapter") + .HasColumnType("boolean"); + + b1.Property("SubChapterId") + .HasColumnType("integer"); + + b1.Property("SubChapterStoryId") + .HasColumnType("integer"); + + b1.HasKey("StoryId", "Id"); + + b1.ToTable("StorySubChapter"); + + b1.WithOwner() + .HasForeignKey("StoryId"); + }); + + b.Navigation("BattleSettings"); + + b.Navigation("Rewards"); + + b.Navigation("Section"); + + b.Navigation("SpecialBattleSetting"); + + b.Navigation("SubChapters"); + }); + + modelBuilder.Entity("SVSim.Database.Entities.Story.StorySection", b => + { + b.HasOne("SVSim.Database.Entities.Story.StoryWorld", "World") + .WithMany() + .HasForeignKey("WorldId"); + + b.Navigation("World"); + }); + + modelBuilder.Entity("SVSim.Database.Models.CardCosmeticReward", b => + { + b.HasOne("SVSim.Database.Models.ShadowverseCardEntry", "Card") + .WithMany() + .HasForeignKey("CardId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Card"); + }); + + modelBuilder.Entity("SVSim.Database.Models.LeaderSkinEntry", b => + { + b.HasOne("SVSim.Database.Models.ClassEntry", "Class") + .WithMany("LeaderSkins") + .HasForeignKey("ClassId"); + + b.Navigation("Class"); + }); + + modelBuilder.Entity("SVSim.Database.Models.PackConfigEntry", b => + { + b.OwnsMany("SVSim.Database.Models.PackBannerEntry", "Banners", b1 => + { + b1.Property("PackConfigEntryId") + .HasColumnType("integer"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("BannerName") + .IsRequired() + .HasColumnType("text"); + + b1.Property("DialogTitle") + .IsRequired() + .HasColumnType("text"); + + b1.HasKey("PackConfigEntryId", "Id"); + + b1.ToTable("PackBannerEntry"); + + b1.WithOwner() + .HasForeignKey("PackConfigEntryId"); + }); + + b.OwnsMany("SVSim.Database.Models.PackChildGachaEntry", "ChildGachas", b1 => + { + b1.Property("PackConfigEntryId") + .HasColumnType("integer"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("CampaignName") + .HasColumnType("text"); + + b1.Property("CardCount") + .HasColumnType("integer"); + + b1.Property("Cost") + .HasColumnType("integer"); + + b1.Property("FreeGachaCampaignId") + .HasColumnType("integer"); + + b1.Property("GachaId") + .HasColumnType("integer"); + + b1.Property("IsDailySingle") + .HasColumnType("boolean"); + + b1.Property("ItemId") + .HasColumnType("bigint"); + + b1.Property("OverrideIncreaseGachaPoint") + .HasColumnType("integer"); + + b1.Property("PurchaseLimitCount") + .HasColumnType("integer"); + + b1.Property("TypeDetail") + .HasColumnType("integer"); + + b1.HasKey("PackConfigEntryId", "Id"); + + b1.ToTable("PackChildGachaEntry"); + + b1.WithOwner() + .HasForeignKey("PackConfigEntryId"); + }); + + b.OwnsOne("SVSim.Database.Models.PackGachaPointConfig", "GachaPointConfig", b1 => + { + b1.Property("PackConfigEntryId") + .HasColumnType("integer"); + + b1.Property("ExchangeablePoint") + .HasColumnType("integer"); + + b1.Property("IncreaseGachaPoint") + .HasColumnType("integer"); + + b1.HasKey("PackConfigEntryId"); + + b1.ToTable("Packs"); + + b1.WithOwner() + .HasForeignKey("PackConfigEntryId"); + }); + + b.Navigation("Banners"); + + b.Navigation("ChildGachas"); + + b.Navigation("GachaPointConfig"); + }); + + modelBuilder.Entity("SVSim.Database.Models.PuzzleEntry", b => + { + b.HasOne("SVSim.Database.Models.PuzzleGroupEntry", "Group") + .WithMany("Puzzles") + .HasForeignKey("GroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Group"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ShadowverseCardEntry", b => + { + b.HasOne("SVSim.Database.Models.ClassEntry", "Class") + .WithMany() + .HasForeignKey("ClassId"); + + b.HasOne("SVSim.Database.Models.ShadowverseCardSetEntry", null) + .WithMany("Cards") + .HasForeignKey("ShadowverseCardSetEntryId"); + + b.OwnsOne("SVSim.Database.Models.CardCollectionInfo", "CollectionInfo", b1 => + { + b1.Property("ShadowverseCardEntryId") + .HasColumnType("bigint"); + + b1.Property("CraftCost") + .HasColumnType("integer"); + + b1.Property("DustReward") + .HasColumnType("integer"); + + b1.HasKey("ShadowverseCardEntryId"); + + b1.ToTable("Cards"); + + b1.WithOwner() + .HasForeignKey("ShadowverseCardEntryId"); + }); + + b.Navigation("Class"); + + b.Navigation("CollectionInfo"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ShadowverseDeckEntry", b => + { + b.HasOne("SVSim.Database.Models.ClassEntry", "Class") + .WithMany() + .HasForeignKey("ClassId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SVSim.Database.Models.LeaderSkinEntry", "LeaderSkin") + .WithMany() + .HasForeignKey("LeaderSkinId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SVSim.Database.Models.SleeveEntry", "Sleeve") + .WithMany() + .HasForeignKey("SleeveId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SVSim.Database.Models.Viewer", null) + .WithMany("Decks") + .HasForeignKey("ViewerId"); + + b.OwnsMany("SVSim.Database.Models.DeckCard", "Cards", b1 => + { + b1.Property("ShadowverseDeckEntryId") + .HasColumnType("uuid"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("CardId") + .HasColumnType("bigint"); + + b1.Property("Count") + .HasColumnType("integer"); + + b1.HasKey("ShadowverseDeckEntryId", "Id"); + + b1.HasIndex("CardId"); + + b1.ToTable("DeckCard"); + + b1.HasOne("SVSim.Database.Models.ShadowverseCardEntry", "Card") + .WithMany() + .HasForeignKey("CardId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b1.WithOwner() + .HasForeignKey("ShadowverseDeckEntryId"); + + b1.Navigation("Card"); + }); + + b.Navigation("Cards"); + + b.Navigation("Class"); + + b.Navigation("LeaderSkin"); + + b.Navigation("Sleeve"); + }); + + modelBuilder.Entity("SVSim.Database.Models.Viewer", b => + { + b.OwnsMany("SVSim.Database.Models.OwnedCardEntry", "Cards", b1 => + { + b1.Property("ViewerId") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("CardId") + .HasColumnType("bigint"); + + b1.Property("Count") + .HasColumnType("integer"); + + b1.Property("IsProtected") + .HasColumnType("boolean"); + + b1.HasKey("ViewerId", "Id"); + + b1.HasIndex("CardId"); + + b1.HasIndex("ViewerId", "CardId") + .IsUnique(); + + b1.ToTable("OwnedCardEntry"); + + b1.HasOne("SVSim.Database.Models.ShadowverseCardEntry", "Card") + .WithMany() + .HasForeignKey("CardId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b1.WithOwner() + .HasForeignKey("ViewerId"); + + b1.Navigation("Card"); + }); + + b.OwnsMany("SVSim.Database.Models.OwnedItemEntry", "Items", b1 => + { + b1.Property("ViewerId") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("Count") + .HasColumnType("integer"); + + b1.Property("ItemId") + .HasColumnType("integer"); + + b1.HasKey("ViewerId", "Id"); + + b1.HasIndex("ItemId"); + + b1.HasIndex("ViewerId", "ItemId") + .IsUnique(); + + b1.ToTable("OwnedItemEntry"); + + b1.HasOne("SVSim.Database.Models.ItemEntry", "Item") + .WithMany() + .HasForeignKey("ItemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b1.WithOwner("Viewer") + .HasForeignKey("ViewerId"); + + b1.Navigation("Item"); + + b1.Navigation("Viewer"); + }); + + b.OwnsMany("SVSim.Database.Models.SocialAccountConnection", "SocialAccountConnections", b1 => + { + b1.Property("ViewerId") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("AccountId") + .HasColumnType("numeric(20,0)"); + + b1.Property("AccountType") + .HasColumnType("integer"); + + b1.HasKey("ViewerId", "Id"); + + b1.ToTable("SocialAccountConnection"); + + b1.WithOwner("Viewer") + .HasForeignKey("ViewerId"); + + b1.Navigation("Viewer"); + }); + + b.OwnsMany("SVSim.Database.Models.ViewerClassData", "Classes", b1 => + { + b1.Property("ViewerId") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("ClassId") + .HasColumnType("integer"); + + b1.Property("Exp") + .HasColumnType("integer"); + + b1.Property("LeaderSkinId") + .HasColumnType("integer"); + + b1.Property("Level") + .HasColumnType("integer"); + + b1.HasKey("ViewerId", "Id"); + + b1.HasIndex("ClassId"); + + b1.HasIndex("LeaderSkinId"); + + b1.ToTable("ViewerClassData"); + + b1.HasOne("SVSim.Database.Models.ClassEntry", "Class") + .WithMany() + .HasForeignKey("ClassId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b1.HasOne("SVSim.Database.Models.LeaderSkinEntry", "LeaderSkin") + .WithMany() + .HasForeignKey("LeaderSkinId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b1.WithOwner("Viewer") + .HasForeignKey("ViewerId"); + + b1.Navigation("Class"); + + b1.Navigation("LeaderSkin"); + + b1.Navigation("Viewer"); + }); + + b.OwnsOne("SVSim.Database.Models.ViewerCurrency", "Currency", b1 => + { + b1.Property("ViewerId") + .HasColumnType("bigint"); + + b1.Property("AndroidCrystals") + .HasColumnType("numeric(20,0)"); + + b1.Property("Crystals") + .HasColumnType("numeric(20,0)"); + + b1.Property("DmmCrystals") + .HasColumnType("numeric(20,0)"); + + b1.Property("FreeCrystals") + .HasColumnType("numeric(20,0)"); + + b1.Property("IosCrystals") + .HasColumnType("numeric(20,0)"); + + b1.Property("LifeTotalCrystals") + .HasColumnType("numeric(20,0)"); + + b1.Property("RedEther") + .HasColumnType("numeric(20,0)"); + + b1.Property("Rupees") + .HasColumnType("numeric(20,0)"); + + b1.Property("SteamCrystals") + .HasColumnType("numeric(20,0)"); + + b1.HasKey("ViewerId"); + + b1.ToTable("Viewers"); + + b1.WithOwner() + .HasForeignKey("ViewerId"); + }); + + b.OwnsOne("SVSim.Database.Models.ViewerInfo", "Info", b1 => + { + b1.Property("ViewerId") + .HasColumnType("bigint"); + + b1.Property("BirthDate") + .HasColumnType("timestamp with time zone"); + + b1.Property("CountryCode") + .IsRequired() + .HasColumnType("text"); + + b1.Property("IsOfficial") + .HasColumnType("boolean"); + + b1.Property("IsOfficialMarkDisplayed") + .HasColumnType("boolean"); + + b1.Property("MaxFriends") + .HasColumnType("integer"); + + b1.Property("SelectedDegreeId") + .HasColumnType("integer"); + + b1.Property("SelectedEmblemId") + .HasColumnType("integer"); + + b1.HasKey("ViewerId"); + + b1.HasIndex("SelectedDegreeId"); + + b1.HasIndex("SelectedEmblemId"); + + b1.ToTable("Viewers"); + + b1.HasOne("SVSim.Database.Models.DegreeEntry", "SelectedDegree") + .WithMany() + .HasForeignKey("SelectedDegreeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b1.HasOne("SVSim.Database.Models.EmblemEntry", "SelectedEmblem") + .WithMany() + .HasForeignKey("SelectedEmblemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b1.WithOwner() + .HasForeignKey("ViewerId"); + + b1.Navigation("SelectedDegree"); + + b1.Navigation("SelectedEmblem"); + }); + + b.OwnsOne("SVSim.Database.Models.ViewerMissionData", "MissionData", b1 => + { + b1.Property("ViewerId") + .HasColumnType("bigint"); + + b1.Property("HasReceivedPickTwoMission") + .HasColumnType("boolean"); + + b1.Property("MissionChangeTime") + .HasColumnType("timestamp with time zone"); + + b1.Property("MissionReceiveType") + .HasColumnType("integer"); + + b1.Property("TutorialState") + .HasColumnType("integer"); + + b1.HasKey("ViewerId"); + + b1.ToTable("Viewers"); + + b1.WithOwner() + .HasForeignKey("ViewerId"); + }); + + b.OwnsMany("SVSim.Database.Models.ViewerPackOpenCount", "PackOpenCounts", b1 => + { + b1.Property("ViewerId") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("LastDailyFreeAt") + .HasColumnType("timestamp with time zone"); + + b1.Property("OpenCount") + .HasColumnType("integer"); + + b1.Property("PackId") + .HasColumnType("integer"); + + b1.HasKey("ViewerId", "Id"); + + b1.ToTable("ViewerPackOpenCount"); + + b1.WithOwner() + .HasForeignKey("ViewerId"); + }); + + b.Navigation("Cards"); + + b.Navigation("Classes"); + + b.Navigation("Currency") + .IsRequired(); + + b.Navigation("Info") + .IsRequired(); + + b.Navigation("Items"); + + b.Navigation("MissionData") + .IsRequired(); + + b.Navigation("PackOpenCounts"); + + b.Navigation("SocialAccountConnections"); + }); + + modelBuilder.Entity("SleeveEntryViewer", b => + { + b.HasOne("SVSim.Database.Models.SleeveEntry", null) + .WithMany() + .HasForeignKey("SleevesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SVSim.Database.Models.Viewer", null) + .WithMany() + .HasForeignKey("ViewersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("SVSim.Database.Models.ClassEntry", b => + { + b.Navigation("LeaderSkins"); + }); + + modelBuilder.Entity("SVSim.Database.Models.PuzzleGroupEntry", b => + { + b.Navigation("Puzzles"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ShadowverseCardSetEntry", b => + { + b.Navigation("Cards"); + }); + + modelBuilder.Entity("SVSim.Database.Models.Viewer", b => + { + b.Navigation("Decks"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/SVSim.Database/Migrations/20260525212450_AddStoryChapterUnlockText.cs b/SVSim.Database/Migrations/20260525212450_AddStoryChapterUnlockText.cs new file mode 100644 index 0000000..272a298 --- /dev/null +++ b/SVSim.Database/Migrations/20260525212450_AddStoryChapterUnlockText.cs @@ -0,0 +1,28 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace SVSim.Database.Migrations +{ + /// + public partial class AddStoryChapterUnlockText : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "UnlockText", + table: "StoryChapters", + type: "text", + nullable: true); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "UnlockText", + table: "StoryChapters"); + } + } +} diff --git a/SVSim.Database/Migrations/20260525213842_AddStorySectionSpoilerFields.Designer.cs b/SVSim.Database/Migrations/20260525213842_AddStorySectionSpoilerFields.Designer.cs new file mode 100644 index 0000000..a785c77 --- /dev/null +++ b/SVSim.Database/Migrations/20260525213842_AddStorySectionSpoilerFields.Designer.cs @@ -0,0 +1,2586 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; +using SVSim.Database; + +#nullable disable + +namespace SVSim.Database.Migrations +{ + [DbContext(typeof(SVSimDbContext))] + [Migration("20260525213842_AddStorySectionSpoilerFields")] + partial class AddStorySectionSpoilerFields + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.8") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.HasSequence("ShortUdidSequence") + .StartsAt(400000000L); + + modelBuilder.Entity("DegreeEntryViewer", b => + { + b.Property("DegreesId") + .HasColumnType("integer"); + + b.Property("ViewersId") + .HasColumnType("bigint"); + + b.HasKey("DegreesId", "ViewersId"); + + b.HasIndex("ViewersId"); + + b.ToTable("DegreeEntryViewer"); + }); + + modelBuilder.Entity("EmblemEntryViewer", b => + { + b.Property("EmblemsId") + .HasColumnType("integer"); + + b.Property("ViewersId") + .HasColumnType("bigint"); + + b.HasKey("EmblemsId", "ViewersId"); + + b.HasIndex("ViewersId"); + + b.ToTable("EmblemEntryViewer"); + }); + + modelBuilder.Entity("LeaderSkinEntryViewer", b => + { + b.Property("LeaderSkinsId") + .HasColumnType("integer"); + + b.Property("ViewersId") + .HasColumnType("bigint"); + + b.HasKey("LeaderSkinsId", "ViewersId"); + + b.HasIndex("ViewersId"); + + b.ToTable("LeaderSkinEntryViewer"); + }); + + modelBuilder.Entity("MyPageBackgroundEntryViewer", b => + { + b.Property("MyPageBackgroundsId") + .HasColumnType("integer"); + + b.Property("ViewersId") + .HasColumnType("bigint"); + + b.HasKey("MyPageBackgroundsId", "ViewersId"); + + b.HasIndex("ViewersId"); + + b.ToTable("MyPageBackgroundEntryViewer"); + }); + + modelBuilder.Entity("SVSim.Database.Entities.Story.SpecialBattleSetting", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("BanishEffectOverride") + .IsRequired() + .HasColumnType("text"); + + b.Property("ClassDestroyEffectOverride") + .HasColumnType("integer"); + + b.Property("EnemyAttachSkill") + .IsRequired() + .HasColumnType("text"); + + b.Property("EnemyStartLife") + .HasColumnType("integer"); + + b.Property("EnemyStartPp") + .HasColumnType("integer"); + + b.Property("IdOverrideInBattleLog") + .IsRequired() + .HasColumnType("text"); + + b.Property("Note") + .HasColumnType("text"); + + b.Property("PlayerAttachSkill") + .IsRequired() + .HasColumnType("text"); + + b.Property("PlayerFirstTurn") + .HasColumnType("integer"); + + b.Property("PlayerStartLife") + .HasColumnType("integer"); + + b.Property("PlayerStartPp") + .HasColumnType("integer"); + + b.Property("ResultSkip") + .HasColumnType("integer"); + + b.Property("SpecialTokenDrawEffectOverride") + .IsRequired() + .HasColumnType("text"); + + b.Property("TokenDrawEffectOverride") + .IsRequired() + .HasColumnType("text"); + + b.Property("VsEffectOverride") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("SpecialBattleSettings"); + }); + + modelBuilder.Entity("SVSim.Database.Entities.Story.StoryChapter", b => + { + b.Property("StoryId") + .HasColumnType("integer"); + + b.Property("Battle3dFieldId") + .HasColumnType("integer"); + + b.Property("BattleExists") + .HasColumnType("boolean"); + + b.Property("BgFileName") + .IsRequired() + .HasColumnType("text"); + + b.Property("BgmId") + .IsRequired() + .HasColumnType("text"); + + b.Property("ChapterClearTextId") + .HasColumnType("text"); + + b.Property("ChapterEffectPath") + .HasColumnType("text"); + + b.Property("ChapterId") + .IsRequired() + .HasColumnType("text"); + + b.Property("CharaId") + .HasColumnType("integer"); + + b.Property("EnemyAiId") + .HasColumnType("integer"); + + b.Property("EnemyCharaId") + .HasColumnType("integer"); + + b.Property("EnemyClass") + .HasColumnType("integer"); + + b.Property("IsCameraMovable") + .HasColumnType("integer"); + + b.Property("IsMaintenanceChapter") + .HasColumnType("boolean"); + + b.Property("IsPlayAnotherEndAppearanceAnimation") + .HasColumnType("boolean"); + + b.Property("IsReleasedAnotherEnd") + .HasColumnType("boolean"); + + b.Property("IsSkipEnabled") + .HasColumnType("boolean"); + + b.Property("NextChapterId") + .IsRequired() + .HasColumnType("text"); + + b.Property("ReleasePoint") + .HasColumnType("integer"); + + b.Property("RequiredChapterId") + .HasColumnType("text"); + + b.Property("SectionId") + .HasColumnType("integer"); + + b.Property("SelectionDisplayPosition") + .HasColumnType("text"); + + b.Property("SelectionTextId") + .HasColumnType("text"); + + b.Property("ShowCoordinate") + .HasColumnType("integer"); + + b.Property("ShowSubtitles") + .HasColumnType("integer"); + + b.Property("SpecialBattleSettingId") + .HasColumnType("integer"); + + b.Property("UnlockText") + .HasColumnType("text"); + + b.Property("XCoordinate") + .HasColumnType("numeric"); + + b.Property("YCoordinate") + .HasColumnType("numeric"); + + b.HasKey("StoryId"); + + b.HasIndex("NextChapterId"); + + b.HasIndex("SpecialBattleSettingId"); + + b.HasIndex("SectionId", "CharaId", "ChapterId"); + + b.ToTable("StoryChapters"); + }); + + modelBuilder.Entity("SVSim.Database.Entities.Story.StorySection", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("AllStoryOrderId") + .HasColumnType("integer"); + + b.Property("BackGroundId") + .HasColumnType("integer"); + + b.Property("ChapterSelectType") + .HasColumnType("integer"); + + b.Property("ImageName") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsLeaderSelect") + .HasColumnType("boolean"); + + b.Property("IsPlayAnotherEndAppearanceAnimation") + .HasColumnType("boolean"); + + b.Property("IsSpoiler") + .HasColumnType("integer"); + + b.Property("IsUnderMaintenance") + .HasColumnType("boolean"); + + b.Property("NameTextKey") + .IsRequired() + .HasColumnType("text"); + + b.Property("OrderId") + .HasColumnType("integer"); + + b.Property("SpoilerMessage") + .IsRequired() + .HasColumnType("text"); + + b.Property("StoryApiType") + .HasColumnType("integer"); + + b.Property("StoryTypeOverwrite") + .HasColumnType("integer"); + + b.Property("WorldId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("WorldId"); + + b.ToTable("StorySections"); + }); + + modelBuilder.Entity("SVSim.Database.Entities.Story.StoryWorld", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("PanelImageName") + .IsRequired() + .HasColumnType("text"); + + b.Property("RibbonText") + .IsRequired() + .HasColumnType("text"); + + b.Property("TitleTextKey") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("StoryWorlds"); + }); + + modelBuilder.Entity("SVSim.Database.Entities.Story.ViewerStoryBranchUnlock", b => + { + b.Property("ViewerId") + .HasColumnType("bigint"); + + b.Property("StoryId") + .HasColumnType("integer"); + + b.Property("UnlockedAt") + .HasColumnType("timestamp with time zone"); + + b.HasKey("ViewerId", "StoryId"); + + b.ToTable("ViewerStoryBranchUnlocks"); + }); + + modelBuilder.Entity("SVSim.Database.Entities.Story.ViewerStoryProgress", b => + { + b.Property("ViewerId") + .HasColumnType("bigint"); + + b.Property("StoryId") + .HasColumnType("integer"); + + b.Property("FinishedAt") + .HasColumnType("timestamp with time zone"); + + b.Property("IsFinish") + .HasColumnType("boolean"); + + b.Property("IsSkipped") + .HasColumnType("boolean"); + + b.Property("SkippedAt") + .HasColumnType("timestamp with time zone"); + + b.HasKey("ViewerId", "StoryId"); + + b.ToTable("ViewerStoryProgress"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ArenaSeasonConfig", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("Cost") + .HasColumnType("numeric(20,0)"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("Enable") + .HasColumnType("integer"); + + b.Property("FormatInfo") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("IsJoin") + .HasColumnType("boolean"); + + b.Property("Mode") + .HasColumnType("integer"); + + b.Property("RupyCost") + .HasColumnType("numeric(20,0)"); + + b.Property("TicketCost") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("ArenaSeasons"); + }); + + modelBuilder.Entity("SVSim.Database.Models.AvatarAbilityEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("Ability") + .IsRequired() + .HasColumnType("text"); + + b.Property("AbilityCost") + .IsRequired() + .HasColumnType("text"); + + b.Property("AbilityDesc") + .IsRequired() + .HasColumnType("text"); + + b.Property("BattleStartFirstPlayerTurnBp") + .HasColumnType("integer"); + + b.Property("BattleStartMaxLife") + .HasColumnType("integer"); + + b.Property("BattleStartSecondPlayerTurnBp") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("LeaderSkinId") + .HasColumnType("integer"); + + b.Property("PassiveAbility") + .IsRequired() + .HasColumnType("text"); + + b.Property("PassiveAbilityDesc") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("AvatarAbilities"); + }); + + modelBuilder.Entity("SVSim.Database.Models.BannerEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("ChangeTime") + .HasColumnType("integer"); + + b.Property("Click") + .IsRequired() + .HasColumnType("text"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("ImageName") + .IsRequired() + .HasColumnType("text"); + + b.Property("ImagePaths") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("RemainingTime") + .HasColumnType("integer"); + + b.Property("Status") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Banners"); + }); + + modelBuilder.Entity("SVSim.Database.Models.BattlePassLevelEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("Level") + .HasColumnType("integer"); + + b.Property("RewardData") + .IsRequired() + .HasColumnType("jsonb"); + + b.HasKey("Id"); + + b.ToTable("BattlePassLevels"); + }); + + modelBuilder.Entity("SVSim.Database.Models.BattlefieldEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("IsOpen") + .HasColumnType("boolean"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Battlefields"); + }); + + modelBuilder.Entity("SVSim.Database.Models.CardCosmeticReward", b => + { + b.Property("CardId") + .HasColumnType("bigint"); + + b.Property("Type") + .HasColumnType("integer"); + + b.Property("CosmeticId") + .HasColumnType("bigint"); + + b.Property("Quantity") + .HasColumnType("integer"); + + b.HasKey("CardId", "Type", "CosmeticId"); + + b.HasIndex("CardId"); + + b.ToTable("CardCosmeticRewards"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ClassEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Classes"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ClassExpEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("NecessaryExp") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("ClassExpCurve"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ColosseumConfig", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("CardPoolName") + .IsRequired() + .HasColumnType("text"); + + b.Property("ColosseumId") + .IsRequired() + .HasColumnType("text"); + + b.Property("ColosseumName") + .IsRequired() + .HasColumnType("text"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("DeckFormat") + .IsRequired() + .HasColumnType("text"); + + b.Property("EndTime") + .HasColumnType("timestamp with time zone"); + + b.Property("IsAllCardEnabled") + .HasColumnType("integer"); + + b.Property("IsColosseumPeriod") + .HasColumnType("boolean"); + + b.Property("IsDisplayTips") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsNormalTwoPick") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsRoundPeriod") + .HasColumnType("boolean"); + + b.Property("IsSpecialMode") + .IsRequired() + .HasColumnType("text"); + + b.Property("NowRound") + .IsRequired() + .HasColumnType("text"); + + b.Property("SalesPeriodInfo") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("StartTime") + .HasColumnType("timestamp with time zone"); + + b.Property("TipsId") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Colosseums"); + }); + + modelBuilder.Entity("SVSim.Database.Models.DailyLoginBonusEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("BonusData") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("BonusId") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("DailyLoginBonuses"); + }); + + modelBuilder.Entity("SVSim.Database.Models.DefaultDeckEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("CardIdArray") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("ClassId") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("DeckName") + .IsRequired() + .HasColumnType("text"); + + b.Property("DeckNo") + .HasColumnType("integer"); + + b.Property("LeaderSkinId") + .HasColumnType("integer"); + + b.Property("SleeveId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("DefaultDecks"); + }); + + modelBuilder.Entity("SVSim.Database.Models.DefaultLeaderSkinSettingEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("ClassId") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("IsRandomLeaderSkin") + .HasColumnType("integer"); + + b.Property("LeaderSkinId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("DefaultLeaderSkinSettings"); + }); + + modelBuilder.Entity("SVSim.Database.Models.DegreeEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("Degrees"); + }); + + modelBuilder.Entity("SVSim.Database.Models.EmblemEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("Emblems"); + }); + + modelBuilder.Entity("SVSim.Database.Models.FeatureMaintenanceEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("Data") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("FeatureKey") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("FeatureMaintenances"); + }); + + modelBuilder.Entity("SVSim.Database.Models.GameConfigSection", b => + { + b.Property("SectionName") + .HasColumnType("text"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("ValueJson") + .IsRequired() + .HasColumnType("jsonb"); + + b.HasKey("SectionName"); + + b.ToTable("GameConfigs"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ItemEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Items"); + }); + + modelBuilder.Entity("SVSim.Database.Models.LeaderSkinEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("ClassId") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("EmoteId") + .HasColumnType("integer"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("ClassId"); + + b.ToTable("LeaderSkins"); + }); + + modelBuilder.Entity("SVSim.Database.Models.LoadingExclusionCardEntry", b => + { + b.Property("Id") + .HasColumnType("bigint"); + + b.Property("CardId") + .HasColumnType("bigint"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("LoadingExclusionCards"); + }); + + modelBuilder.Entity("SVSim.Database.Models.MaintenanceCardEntry", b => + { + b.Property("Id") + .HasColumnType("bigint"); + + b.Property("CardId") + .HasColumnType("bigint"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("MaintenanceCards"); + }); + + modelBuilder.Entity("SVSim.Database.Models.MasterPointRankingPeriodEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("BeginTime") + .HasColumnType("timestamp with time zone"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("EndTime") + .HasColumnType("timestamp with time zone"); + + b.Property("NecessaryScore") + .HasColumnType("bigint"); + + b.Property("PeriodNum") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("MasterPointRankingPeriods"); + }); + + modelBuilder.Entity("SVSim.Database.Models.MyPageBackgroundEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("MyPageBackgrounds"); + }); + + modelBuilder.Entity("SVSim.Database.Models.MyRotationAbilityEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("AbilityId") + .HasColumnType("integer"); + + b.Property("Data") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("MyRotationAbilities"); + }); + + modelBuilder.Entity("SVSim.Database.Models.MyRotationSettingEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("AbilitiesCsv") + .IsRequired() + .HasColumnType("text"); + + b.Property("CardSetIdsCsv") + .IsRequired() + .HasColumnType("text"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("ReprintedCardIds") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("RestrictedCardIds") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("RotationId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("MyRotationSettings"); + }); + + modelBuilder.Entity("SVSim.Database.Models.PackConfigEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("BasePackId") + .HasColumnType("integer"); + + b.Property("CommenceDate") + .HasColumnType("timestamp with time zone"); + + b.Property("CompleteDate") + .HasColumnType("timestamp with time zone"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("GachaDetail") + .IsRequired() + .HasColumnType("text"); + + b.Property("GachaType") + .HasColumnType("integer"); + + b.Property("IsHide") + .HasColumnType("boolean"); + + b.Property("IsNew") + .HasColumnType("boolean"); + + b.Property("IsPreRelease") + .HasColumnType("boolean"); + + b.Property("OpenCountLimit") + .HasColumnType("integer"); + + b.Property("OverrideDrawEffectPackId") + .HasColumnType("integer"); + + b.Property("OverrideUiEffectPackId") + .HasColumnType("integer"); + + b.Property("PackCategory") + .HasColumnType("integer"); + + b.Property("PosterType") + .HasColumnType("integer"); + + b.Property("SalesPeriodTime") + .HasColumnType("timestamp with time zone"); + + b.Property("SleeveId") + .HasColumnType("integer"); + + b.Property("SpecialSleeveId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("Packs"); + }); + + modelBuilder.Entity("SVSim.Database.Models.PaymentItemEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("ChargeCrystalNum") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("EndTime") + .HasColumnType("timestamp with time zone"); + + b.Property("FreeCrystalNum") + .HasColumnType("integer"); + + b.Property("ImageName") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsResaleProduct") + .HasColumnType("integer"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("Price") + .HasColumnType("numeric"); + + b.Property("ProductId") + .HasColumnType("integer"); + + b.Property("PurchaseLimit") + .HasColumnType("integer"); + + b.Property("RemainingTime") + .HasColumnType("integer"); + + b.Property("ResaleStartDate") + .HasColumnType("timestamp with time zone"); + + b.Property("SpecialShopFlag") + .HasColumnType("integer"); + + b.Property("StartTime") + .HasColumnType("timestamp with time zone"); + + b.Property("StoreProductId") + .HasColumnType("bigint"); + + b.Property("Text") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("PaymentItems"); + }); + + modelBuilder.Entity("SVSim.Database.Models.PracticeOpponentEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("AiDeckLevel") + .HasColumnType("integer"); + + b.Property("AiLogicLevel") + .HasColumnType("integer"); + + b.Property("AiMaxLife") + .HasColumnType("integer"); + + b.Property("Battle3dFieldId") + .IsRequired() + .HasColumnType("text"); + + b.Property("CharaId") + .HasColumnType("integer"); + + b.Property("ClassId") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("DegreeId") + .HasColumnType("integer"); + + b.Property("IsCampaignPractice") + .HasColumnType("boolean"); + + b.Property("IsMaintenance") + .HasColumnType("boolean"); + + b.Property("PracticeId") + .HasColumnType("integer"); + + b.Property("TextId") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("PracticeOpponents"); + }); + + modelBuilder.Entity("SVSim.Database.Models.PreReleaseInfo", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("CardMasterId") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("DefaultCardMasterId") + .IsRequired() + .HasColumnType("text"); + + b.Property("DisplayEndTime") + .HasColumnType("timestamp with time zone"); + + b.Property("EndTime") + .HasColumnType("timestamp with time zone"); + + b.Property("FreeMatchStartTime") + .HasColumnType("timestamp with time zone"); + + b.Property("IsPreRotationFreeMatchTerm") + .HasColumnType("boolean"); + + b.Property("LatestReprintedBaseCardIds") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("NextCardSetId") + .IsRequired() + .HasColumnType("text"); + + b.Property("PreReleaseCardMasterId") + .IsRequired() + .HasColumnType("text"); + + b.Property("PreReleaseId") + .IsRequired() + .HasColumnType("text"); + + b.Property("ReprintedBaseCardIds") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("RotationCardSetIdList") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("StartTime") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("PreReleaseInfos"); + }); + + modelBuilder.Entity("SVSim.Database.Models.PuzzleEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("GroupId") + .HasColumnType("integer"); + + b.Property("IsAdditional") + .HasColumnType("boolean"); + + b.Property("IsPlayable") + .HasColumnType("boolean"); + + b.Property("PuzzleDifficulty") + .HasColumnType("integer"); + + b.Property("PuzzleId") + .HasColumnType("integer"); + + b.Property("ReleaseConditionTextId") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("GroupId"); + + b.ToTable("Puzzles"); + }); + + modelBuilder.Entity("SVSim.Database.Models.PuzzleGroupEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("BasicTitleTextId") + .IsRequired() + .HasColumnType("text"); + + b.Property("CharaId") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("DifficultyNameListJson") + .IsRequired() + .HasColumnType("text"); + + b.Property("PuzzleCharaId") + .HasColumnType("integer"); + + b.Property("PuzzleMasterId") + .HasColumnType("integer"); + + b.Property("SortType") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("PuzzleGroups"); + }); + + modelBuilder.Entity("SVSim.Database.Models.PuzzleMissionEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("AchievedMessage") + .IsRequired() + .HasColumnType("text"); + + b.Property("CampaignCommenceTime") + .HasColumnType("bigint"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("MissionName") + .IsRequired() + .HasColumnType("text"); + + b.Property("OrderId") + .HasColumnType("integer"); + + b.Property("RequireNumber") + .HasColumnType("integer"); + + b.Property("RewardDetailId") + .HasColumnType("bigint"); + + b.Property("RewardNumber") + .HasColumnType("integer"); + + b.Property("RewardType") + .HasColumnType("integer"); + + b.Property("TargetPuzzleGroupId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("PuzzleMissions"); + }); + + modelBuilder.Entity("SVSim.Database.Models.RankInfoEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("AccumulateMasterPoint") + .HasColumnType("integer"); + + b.Property("AccumulatePoint") + .HasColumnType("integer"); + + b.Property("BaseAddBp") + .HasColumnType("integer"); + + b.Property("BaseDropBp") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("IsPromotionWar") + .HasColumnType("integer"); + + b.Property("LoseBonus") + .HasColumnType("double precision"); + + b.Property("LowerLimitPoint") + .HasColumnType("integer"); + + b.Property("MatchCount") + .HasColumnType("integer"); + + b.Property("MaxLoseBonus") + .HasColumnType("integer"); + + b.Property("MaxWinBonus") + .HasColumnType("integer"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("NecessaryPoint") + .HasColumnType("integer"); + + b.Property("NecessaryWin") + .HasColumnType("integer"); + + b.Property("ResetLose") + .HasColumnType("integer"); + + b.Property("StreakBonusPt") + .HasColumnType("integer"); + + b.Property("WinBonus") + .HasColumnType("double precision"); + + b.HasKey("Id"); + + b.ToTable("RankInfo"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ReprintedCardEntry", b => + { + b.Property("Id") + .HasColumnType("bigint"); + + b.Property("CardId") + .HasColumnType("bigint"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("ReprintedCards"); + }); + + modelBuilder.Entity("SVSim.Database.Models.SealedConfig", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("CrystalCost") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("DeckUsingNumMin") + .HasColumnType("integer"); + + b.Property("Enable") + .HasColumnType("integer"); + + b.Property("IsDeckCodeMaintenance") + .HasColumnType("boolean"); + + b.Property("IsJoin") + .HasColumnType("boolean"); + + b.Property("PackInfo") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("RupyCost") + .HasColumnType("integer"); + + b.Property("SalesPeriodInfo") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("ScheduleId") + .HasColumnType("integer"); + + b.Property("TicketCost") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("SealedSeasons"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ShadowverseCardEntry", b => + { + b.Property("Id") + .HasColumnType("bigint"); + + b.Property("Attack") + .HasColumnType("integer"); + + b.Property("ClassId") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("Defense") + .HasColumnType("integer"); + + b.Property("IsFoil") + .HasColumnType("boolean"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("PrimaryResourceCost") + .HasColumnType("integer"); + + b.Property("Rarity") + .HasColumnType("integer"); + + b.Property("ShadowverseCardSetEntryId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ClassId"); + + b.HasIndex("ShadowverseCardSetEntryId"); + + b.ToTable("Cards"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ShadowverseCardSetEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("IsBasic") + .HasColumnType("boolean"); + + b.Property("IsInRotation") + .HasColumnType("boolean"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("CardSets"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ShadowverseDeckEntry", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ClassId") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("Format") + .HasColumnType("integer"); + + b.Property("LeaderSkinId") + .HasColumnType("integer"); + + b.Property("MyRotationId") + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("Number") + .HasColumnType("integer"); + + b.Property("RandomLeaderSkin") + .HasColumnType("boolean"); + + b.Property("SleeveId") + .HasColumnType("integer"); + + b.Property("ViewerId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("ClassId"); + + b.HasIndex("LeaderSkinId"); + + b.HasIndex("SleeveId"); + + b.HasIndex("ViewerId"); + + b.ToTable("Decks"); + }); + + modelBuilder.Entity("SVSim.Database.Models.SleeveEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("Sleeves"); + }); + + modelBuilder.Entity("SVSim.Database.Models.SpecialDeckFormatEntry", b => + { + b.Property("Id") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("DeckFormat") + .IsRequired() + .HasColumnType("text"); + + b.Property("EndTime") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("SpecialDeckFormats"); + }); + + modelBuilder.Entity("SVSim.Database.Models.SpotCardEntry", b => + { + b.Property("Id") + .HasColumnType("bigint"); + + b.Property("CardId") + .HasColumnType("bigint"); + + b.Property("Cost") + .HasColumnType("integer"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("SpotCards"); + }); + + modelBuilder.Entity("SVSim.Database.Models.UnlimitedRestrictionEntry", b => + { + b.Property("Id") + .HasColumnType("bigint"); + + b.Property("CardId") + .HasColumnType("bigint"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("RestrictionValue") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("UnlimitedRestrictions"); + }); + + modelBuilder.Entity("SVSim.Database.Models.Viewer", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone"); + + b.Property("DateUpdated") + .HasColumnType("timestamp with time zone"); + + b.Property("DisplayName") + .IsRequired() + .HasColumnType("text"); + + b.Property("LastLogin") + .HasColumnType("timestamp with time zone"); + + b.Property("ShortUdid") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasDefaultValueSql("nextval('\"ShortUdidSequence\"')"); + + NpgsqlPropertyBuilderExtensions.UseSequence(b.Property("ShortUdid"), "ShortUdidSequence"); + + b.HasKey("Id"); + + b.HasIndex("ShortUdid"); + + b.ToTable("Viewers"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ViewerPuzzleClear", b => + { + b.Property("ViewerId") + .HasColumnType("bigint"); + + b.Property("PuzzleId") + .HasColumnType("integer"); + + b.Property("BestRetryCount") + .HasColumnType("integer"); + + b.Property("ClearedAt") + .HasColumnType("timestamp with time zone"); + + b.HasKey("ViewerId", "PuzzleId"); + + b.ToTable("ViewerPuzzleClears"); + }); + + modelBuilder.Entity("SleeveEntryViewer", b => + { + b.Property("SleevesId") + .HasColumnType("integer"); + + b.Property("ViewersId") + .HasColumnType("bigint"); + + b.HasKey("SleevesId", "ViewersId"); + + b.HasIndex("ViewersId"); + + b.ToTable("SleeveEntryViewer"); + }); + + modelBuilder.Entity("DegreeEntryViewer", b => + { + b.HasOne("SVSim.Database.Models.DegreeEntry", null) + .WithMany() + .HasForeignKey("DegreesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SVSim.Database.Models.Viewer", null) + .WithMany() + .HasForeignKey("ViewersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("EmblemEntryViewer", b => + { + b.HasOne("SVSim.Database.Models.EmblemEntry", null) + .WithMany() + .HasForeignKey("EmblemsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SVSim.Database.Models.Viewer", null) + .WithMany() + .HasForeignKey("ViewersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("LeaderSkinEntryViewer", b => + { + b.HasOne("SVSim.Database.Models.LeaderSkinEntry", null) + .WithMany() + .HasForeignKey("LeaderSkinsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SVSim.Database.Models.Viewer", null) + .WithMany() + .HasForeignKey("ViewersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("MyPageBackgroundEntryViewer", b => + { + b.HasOne("SVSim.Database.Models.MyPageBackgroundEntry", null) + .WithMany() + .HasForeignKey("MyPageBackgroundsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SVSim.Database.Models.Viewer", null) + .WithMany() + .HasForeignKey("ViewersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("SVSim.Database.Entities.Story.StoryChapter", b => + { + b.HasOne("SVSim.Database.Entities.Story.StorySection", "Section") + .WithMany() + .HasForeignKey("SectionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SVSim.Database.Entities.Story.SpecialBattleSetting", "SpecialBattleSetting") + .WithMany() + .HasForeignKey("SpecialBattleSettingId"); + + b.OwnsMany("SVSim.Database.Entities.Story.StoryChapterBattleSetting", "BattleSettings", b1 => + { + b1.Property("StoryId") + .HasColumnType("integer"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("Battle3dFieldIdOverride") + .HasColumnType("integer"); + + b1.Property("BgmIdOverride") + .HasColumnType("integer"); + + b1.Property("DeckClassId") + .HasColumnType("integer"); + + b1.Property("DeckSkinIdOverride") + .HasColumnType("integer"); + + b1.Property("EnemyEmotionOverride") + .HasColumnType("integer"); + + b1.Property("PlayerEmotionOverride") + .HasColumnType("integer"); + + b1.Property("SkinIdOverride") + .HasColumnType("integer"); + + b1.HasKey("StoryId", "Id"); + + b1.ToTable("StoryChapterBattleSetting"); + + b1.WithOwner() + .HasForeignKey("StoryId"); + }); + + b.OwnsMany("SVSim.Database.Entities.Story.StoryChapterReward", "Rewards", b1 => + { + b1.Property("StoryId") + .HasColumnType("integer"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("RewardDetailId") + .HasColumnType("bigint"); + + b1.Property("RewardNumber") + .HasColumnType("integer"); + + b1.Property("RewardType") + .HasColumnType("integer"); + + b1.HasKey("StoryId", "Id"); + + b1.ToTable("StoryChapterReward"); + + b1.WithOwner() + .HasForeignKey("StoryId"); + }); + + b.OwnsMany("SVSim.Database.Entities.Story.StorySubChapter", "SubChapters", b1 => + { + b1.Property("StoryId") + .HasColumnType("integer"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("IsMaintenanceChapter") + .HasColumnType("boolean"); + + b1.Property("SubChapterId") + .HasColumnType("integer"); + + b1.Property("SubChapterStoryId") + .HasColumnType("integer"); + + b1.HasKey("StoryId", "Id"); + + b1.ToTable("StorySubChapter"); + + b1.WithOwner() + .HasForeignKey("StoryId"); + }); + + b.Navigation("BattleSettings"); + + b.Navigation("Rewards"); + + b.Navigation("Section"); + + b.Navigation("SpecialBattleSetting"); + + b.Navigation("SubChapters"); + }); + + modelBuilder.Entity("SVSim.Database.Entities.Story.StorySection", b => + { + b.HasOne("SVSim.Database.Entities.Story.StoryWorld", "World") + .WithMany() + .HasForeignKey("WorldId"); + + b.Navigation("World"); + }); + + modelBuilder.Entity("SVSim.Database.Models.CardCosmeticReward", b => + { + b.HasOne("SVSim.Database.Models.ShadowverseCardEntry", "Card") + .WithMany() + .HasForeignKey("CardId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Card"); + }); + + modelBuilder.Entity("SVSim.Database.Models.LeaderSkinEntry", b => + { + b.HasOne("SVSim.Database.Models.ClassEntry", "Class") + .WithMany("LeaderSkins") + .HasForeignKey("ClassId"); + + b.Navigation("Class"); + }); + + modelBuilder.Entity("SVSim.Database.Models.PackConfigEntry", b => + { + b.OwnsMany("SVSim.Database.Models.PackBannerEntry", "Banners", b1 => + { + b1.Property("PackConfigEntryId") + .HasColumnType("integer"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("BannerName") + .IsRequired() + .HasColumnType("text"); + + b1.Property("DialogTitle") + .IsRequired() + .HasColumnType("text"); + + b1.HasKey("PackConfigEntryId", "Id"); + + b1.ToTable("PackBannerEntry"); + + b1.WithOwner() + .HasForeignKey("PackConfigEntryId"); + }); + + b.OwnsMany("SVSim.Database.Models.PackChildGachaEntry", "ChildGachas", b1 => + { + b1.Property("PackConfigEntryId") + .HasColumnType("integer"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("CampaignName") + .HasColumnType("text"); + + b1.Property("CardCount") + .HasColumnType("integer"); + + b1.Property("Cost") + .HasColumnType("integer"); + + b1.Property("FreeGachaCampaignId") + .HasColumnType("integer"); + + b1.Property("GachaId") + .HasColumnType("integer"); + + b1.Property("IsDailySingle") + .HasColumnType("boolean"); + + b1.Property("ItemId") + .HasColumnType("bigint"); + + b1.Property("OverrideIncreaseGachaPoint") + .HasColumnType("integer"); + + b1.Property("PurchaseLimitCount") + .HasColumnType("integer"); + + b1.Property("TypeDetail") + .HasColumnType("integer"); + + b1.HasKey("PackConfigEntryId", "Id"); + + b1.ToTable("PackChildGachaEntry"); + + b1.WithOwner() + .HasForeignKey("PackConfigEntryId"); + }); + + b.OwnsOne("SVSim.Database.Models.PackGachaPointConfig", "GachaPointConfig", b1 => + { + b1.Property("PackConfigEntryId") + .HasColumnType("integer"); + + b1.Property("ExchangeablePoint") + .HasColumnType("integer"); + + b1.Property("IncreaseGachaPoint") + .HasColumnType("integer"); + + b1.HasKey("PackConfigEntryId"); + + b1.ToTable("Packs"); + + b1.WithOwner() + .HasForeignKey("PackConfigEntryId"); + }); + + b.Navigation("Banners"); + + b.Navigation("ChildGachas"); + + b.Navigation("GachaPointConfig"); + }); + + modelBuilder.Entity("SVSim.Database.Models.PuzzleEntry", b => + { + b.HasOne("SVSim.Database.Models.PuzzleGroupEntry", "Group") + .WithMany("Puzzles") + .HasForeignKey("GroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Group"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ShadowverseCardEntry", b => + { + b.HasOne("SVSim.Database.Models.ClassEntry", "Class") + .WithMany() + .HasForeignKey("ClassId"); + + b.HasOne("SVSim.Database.Models.ShadowverseCardSetEntry", null) + .WithMany("Cards") + .HasForeignKey("ShadowverseCardSetEntryId"); + + b.OwnsOne("SVSim.Database.Models.CardCollectionInfo", "CollectionInfo", b1 => + { + b1.Property("ShadowverseCardEntryId") + .HasColumnType("bigint"); + + b1.Property("CraftCost") + .HasColumnType("integer"); + + b1.Property("DustReward") + .HasColumnType("integer"); + + b1.HasKey("ShadowverseCardEntryId"); + + b1.ToTable("Cards"); + + b1.WithOwner() + .HasForeignKey("ShadowverseCardEntryId"); + }); + + b.Navigation("Class"); + + b.Navigation("CollectionInfo"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ShadowverseDeckEntry", b => + { + b.HasOne("SVSim.Database.Models.ClassEntry", "Class") + .WithMany() + .HasForeignKey("ClassId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SVSim.Database.Models.LeaderSkinEntry", "LeaderSkin") + .WithMany() + .HasForeignKey("LeaderSkinId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SVSim.Database.Models.SleeveEntry", "Sleeve") + .WithMany() + .HasForeignKey("SleeveId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SVSim.Database.Models.Viewer", null) + .WithMany("Decks") + .HasForeignKey("ViewerId"); + + b.OwnsMany("SVSim.Database.Models.DeckCard", "Cards", b1 => + { + b1.Property("ShadowverseDeckEntryId") + .HasColumnType("uuid"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("CardId") + .HasColumnType("bigint"); + + b1.Property("Count") + .HasColumnType("integer"); + + b1.HasKey("ShadowverseDeckEntryId", "Id"); + + b1.HasIndex("CardId"); + + b1.ToTable("DeckCard"); + + b1.HasOne("SVSim.Database.Models.ShadowverseCardEntry", "Card") + .WithMany() + .HasForeignKey("CardId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b1.WithOwner() + .HasForeignKey("ShadowverseDeckEntryId"); + + b1.Navigation("Card"); + }); + + b.Navigation("Cards"); + + b.Navigation("Class"); + + b.Navigation("LeaderSkin"); + + b.Navigation("Sleeve"); + }); + + modelBuilder.Entity("SVSim.Database.Models.Viewer", b => + { + b.OwnsMany("SVSim.Database.Models.OwnedCardEntry", "Cards", b1 => + { + b1.Property("ViewerId") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("CardId") + .HasColumnType("bigint"); + + b1.Property("Count") + .HasColumnType("integer"); + + b1.Property("IsProtected") + .HasColumnType("boolean"); + + b1.HasKey("ViewerId", "Id"); + + b1.HasIndex("CardId"); + + b1.HasIndex("ViewerId", "CardId") + .IsUnique(); + + b1.ToTable("OwnedCardEntry"); + + b1.HasOne("SVSim.Database.Models.ShadowverseCardEntry", "Card") + .WithMany() + .HasForeignKey("CardId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b1.WithOwner() + .HasForeignKey("ViewerId"); + + b1.Navigation("Card"); + }); + + b.OwnsMany("SVSim.Database.Models.OwnedItemEntry", "Items", b1 => + { + b1.Property("ViewerId") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("Count") + .HasColumnType("integer"); + + b1.Property("ItemId") + .HasColumnType("integer"); + + b1.HasKey("ViewerId", "Id"); + + b1.HasIndex("ItemId"); + + b1.HasIndex("ViewerId", "ItemId") + .IsUnique(); + + b1.ToTable("OwnedItemEntry"); + + b1.HasOne("SVSim.Database.Models.ItemEntry", "Item") + .WithMany() + .HasForeignKey("ItemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b1.WithOwner("Viewer") + .HasForeignKey("ViewerId"); + + b1.Navigation("Item"); + + b1.Navigation("Viewer"); + }); + + b.OwnsMany("SVSim.Database.Models.SocialAccountConnection", "SocialAccountConnections", b1 => + { + b1.Property("ViewerId") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("AccountId") + .HasColumnType("numeric(20,0)"); + + b1.Property("AccountType") + .HasColumnType("integer"); + + b1.HasKey("ViewerId", "Id"); + + b1.ToTable("SocialAccountConnection"); + + b1.WithOwner("Viewer") + .HasForeignKey("ViewerId"); + + b1.Navigation("Viewer"); + }); + + b.OwnsMany("SVSim.Database.Models.ViewerClassData", "Classes", b1 => + { + b1.Property("ViewerId") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("ClassId") + .HasColumnType("integer"); + + b1.Property("Exp") + .HasColumnType("integer"); + + b1.Property("LeaderSkinId") + .HasColumnType("integer"); + + b1.Property("Level") + .HasColumnType("integer"); + + b1.HasKey("ViewerId", "Id"); + + b1.HasIndex("ClassId"); + + b1.HasIndex("LeaderSkinId"); + + b1.ToTable("ViewerClassData"); + + b1.HasOne("SVSim.Database.Models.ClassEntry", "Class") + .WithMany() + .HasForeignKey("ClassId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b1.HasOne("SVSim.Database.Models.LeaderSkinEntry", "LeaderSkin") + .WithMany() + .HasForeignKey("LeaderSkinId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b1.WithOwner("Viewer") + .HasForeignKey("ViewerId"); + + b1.Navigation("Class"); + + b1.Navigation("LeaderSkin"); + + b1.Navigation("Viewer"); + }); + + b.OwnsOne("SVSim.Database.Models.ViewerCurrency", "Currency", b1 => + { + b1.Property("ViewerId") + .HasColumnType("bigint"); + + b1.Property("AndroidCrystals") + .HasColumnType("numeric(20,0)"); + + b1.Property("Crystals") + .HasColumnType("numeric(20,0)"); + + b1.Property("DmmCrystals") + .HasColumnType("numeric(20,0)"); + + b1.Property("FreeCrystals") + .HasColumnType("numeric(20,0)"); + + b1.Property("IosCrystals") + .HasColumnType("numeric(20,0)"); + + b1.Property("LifeTotalCrystals") + .HasColumnType("numeric(20,0)"); + + b1.Property("RedEther") + .HasColumnType("numeric(20,0)"); + + b1.Property("Rupees") + .HasColumnType("numeric(20,0)"); + + b1.Property("SteamCrystals") + .HasColumnType("numeric(20,0)"); + + b1.HasKey("ViewerId"); + + b1.ToTable("Viewers"); + + b1.WithOwner() + .HasForeignKey("ViewerId"); + }); + + b.OwnsOne("SVSim.Database.Models.ViewerInfo", "Info", b1 => + { + b1.Property("ViewerId") + .HasColumnType("bigint"); + + b1.Property("BirthDate") + .HasColumnType("timestamp with time zone"); + + b1.Property("CountryCode") + .IsRequired() + .HasColumnType("text"); + + b1.Property("IsOfficial") + .HasColumnType("boolean"); + + b1.Property("IsOfficialMarkDisplayed") + .HasColumnType("boolean"); + + b1.Property("MaxFriends") + .HasColumnType("integer"); + + b1.Property("SelectedDegreeId") + .HasColumnType("integer"); + + b1.Property("SelectedEmblemId") + .HasColumnType("integer"); + + b1.HasKey("ViewerId"); + + b1.HasIndex("SelectedDegreeId"); + + b1.HasIndex("SelectedEmblemId"); + + b1.ToTable("Viewers"); + + b1.HasOne("SVSim.Database.Models.DegreeEntry", "SelectedDegree") + .WithMany() + .HasForeignKey("SelectedDegreeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b1.HasOne("SVSim.Database.Models.EmblemEntry", "SelectedEmblem") + .WithMany() + .HasForeignKey("SelectedEmblemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b1.WithOwner() + .HasForeignKey("ViewerId"); + + b1.Navigation("SelectedDegree"); + + b1.Navigation("SelectedEmblem"); + }); + + b.OwnsOne("SVSim.Database.Models.ViewerMissionData", "MissionData", b1 => + { + b1.Property("ViewerId") + .HasColumnType("bigint"); + + b1.Property("HasReceivedPickTwoMission") + .HasColumnType("boolean"); + + b1.Property("MissionChangeTime") + .HasColumnType("timestamp with time zone"); + + b1.Property("MissionReceiveType") + .HasColumnType("integer"); + + b1.Property("TutorialState") + .HasColumnType("integer"); + + b1.HasKey("ViewerId"); + + b1.ToTable("Viewers"); + + b1.WithOwner() + .HasForeignKey("ViewerId"); + }); + + b.OwnsMany("SVSim.Database.Models.ViewerPackOpenCount", "PackOpenCounts", b1 => + { + b1.Property("ViewerId") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id")); + + b1.Property("LastDailyFreeAt") + .HasColumnType("timestamp with time zone"); + + b1.Property("OpenCount") + .HasColumnType("integer"); + + b1.Property("PackId") + .HasColumnType("integer"); + + b1.HasKey("ViewerId", "Id"); + + b1.ToTable("ViewerPackOpenCount"); + + b1.WithOwner() + .HasForeignKey("ViewerId"); + }); + + b.Navigation("Cards"); + + b.Navigation("Classes"); + + b.Navigation("Currency") + .IsRequired(); + + b.Navigation("Info") + .IsRequired(); + + b.Navigation("Items"); + + b.Navigation("MissionData") + .IsRequired(); + + b.Navigation("PackOpenCounts"); + + b.Navigation("SocialAccountConnections"); + }); + + modelBuilder.Entity("SleeveEntryViewer", b => + { + b.HasOne("SVSim.Database.Models.SleeveEntry", null) + .WithMany() + .HasForeignKey("SleevesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SVSim.Database.Models.Viewer", null) + .WithMany() + .HasForeignKey("ViewersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("SVSim.Database.Models.ClassEntry", b => + { + b.Navigation("LeaderSkins"); + }); + + modelBuilder.Entity("SVSim.Database.Models.PuzzleGroupEntry", b => + { + b.Navigation("Puzzles"); + }); + + modelBuilder.Entity("SVSim.Database.Models.ShadowverseCardSetEntry", b => + { + b.Navigation("Cards"); + }); + + modelBuilder.Entity("SVSim.Database.Models.Viewer", b => + { + b.Navigation("Decks"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/SVSim.Database/Migrations/20260525213842_AddStorySectionSpoilerFields.cs b/SVSim.Database/Migrations/20260525213842_AddStorySectionSpoilerFields.cs new file mode 100644 index 0000000..ffce935 --- /dev/null +++ b/SVSim.Database/Migrations/20260525213842_AddStorySectionSpoilerFields.cs @@ -0,0 +1,40 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace SVSim.Database.Migrations +{ + /// + public partial class AddStorySectionSpoilerFields : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "IsSpoiler", + table: "StorySections", + type: "integer", + nullable: false, + defaultValue: 0); + + migrationBuilder.AddColumn( + name: "SpoilerMessage", + table: "StorySections", + type: "text", + nullable: false, + defaultValue: ""); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "IsSpoiler", + table: "StorySections"); + + migrationBuilder.DropColumn( + name: "SpoilerMessage", + table: "StorySections"); + } + } +} diff --git a/SVSim.Database/Migrations/SVSimDbContextModelSnapshot.cs b/SVSim.Database/Migrations/SVSimDbContextModelSnapshot.cs index 2e87b33..7d6be25 100644 --- a/SVSim.Database/Migrations/SVSimDbContextModelSnapshot.cs +++ b/SVSim.Database/Migrations/SVSimDbContextModelSnapshot.cs @@ -230,6 +230,9 @@ namespace SVSim.Database.Migrations b.Property("SpecialBattleSettingId") .HasColumnType("integer"); + b.Property("UnlockText") + .HasColumnType("text"); + b.Property("XCoordinate") .HasColumnType("numeric"); @@ -271,6 +274,9 @@ namespace SVSim.Database.Migrations b.Property("IsPlayAnotherEndAppearanceAnimation") .HasColumnType("boolean"); + b.Property("IsSpoiler") + .HasColumnType("integer"); + b.Property("IsUnderMaintenance") .HasColumnType("boolean"); @@ -281,6 +287,10 @@ namespace SVSim.Database.Migrations b.Property("OrderId") .HasColumnType("integer"); + b.Property("SpoilerMessage") + .IsRequired() + .HasColumnType("text"); + b.Property("StoryApiType") .HasColumnType("integer"); diff --git a/SVSim.Database/Repositories/Story/IStoryMasterRepository.cs b/SVSim.Database/Repositories/Story/IStoryMasterRepository.cs index aef9a95..f1c1f3f 100644 --- a/SVSim.Database/Repositories/Story/IStoryMasterRepository.cs +++ b/SVSim.Database/Repositories/Story/IStoryMasterRepository.cs @@ -16,4 +16,12 @@ public interface IStoryMasterRepository Task GetChapterByIdAsync(int storyId); Task GetSbsByIdAsync(int sbsId); + + /// + /// Resolve a wire story_id to a sub-chapter row when no top-level + /// exists for it. Sub-chapter story_ids have no chapter master data of their own — they're + /// progress markers hanging off the parent. Used by /finish to record progress at the sub's + /// story_id when the client sends sub-chapter ids directly. + /// + Task FindSubChapterByStoryIdAsync(int storyId); } diff --git a/SVSim.Database/Repositories/Story/StoryMasterRepository.cs b/SVSim.Database/Repositories/Story/StoryMasterRepository.cs index 68647da..a246abe 100644 --- a/SVSim.Database/Repositories/Story/StoryMasterRepository.cs +++ b/SVSim.Database/Repositories/Story/StoryMasterRepository.cs @@ -51,4 +51,15 @@ public class StoryMasterRepository : IStoryMasterRepository public Task GetSbsByIdAsync(int sbsId) => _db.SpecialBattleSettings.FirstOrDefaultAsync(s => s.Id == sbsId); + + public async Task FindSubChapterByStoryIdAsync(int storyId) + { + // StorySubChapter is an owned entity (no DbSet of its own); query through the owning + // chapter. SelectMany over the owned collection translates to a JOIN in the relational + // provider — no need to materialize the full chapter row. + return await _db.StoryChapters + .AsNoTracking() + .SelectMany(c => c.SubChapters) + .FirstOrDefaultAsync(sc => sc.SubChapterStoryId == storyId); + } } diff --git a/SVSim.EmulatedEntrypoint/Models/Dtos/Story/InfoDtos.cs b/SVSim.EmulatedEntrypoint/Models/Dtos/Story/InfoDtos.cs index 4baf6b0..1678bf4 100644 --- a/SVSim.EmulatedEntrypoint/Models/Dtos/Story/InfoDtos.cs +++ b/SVSim.EmulatedEntrypoint/Models/Dtos/Story/InfoDtos.cs @@ -171,6 +171,38 @@ public class StoryMasterEntry [JsonPropertyName("is_skip_enabled")] [Key("is_skip_enabled")] public bool IsSkipEnabled { get; set; } + + // Optional — prod omits the key entirely on chapters without sub-chapters. Only emitted for + // chapters that split into N narrative vignettes (e.g. section 9 ch.13 has 5 sub-chapters). + // The client uses each sub's is_finish flag to derive the parent's ChapterClearStatus + // (AllCleared / AlreadyRead / NotCleared per StoryChapterData.GetClearStatusUsingSubChapter). + // Explicit WhenWritingNull (rather than relying on global policy) so the key is dropped + // under any serializer config — including the wire-shape snapshot test which sets + // DefaultIgnoreCondition=Never to exercise every populated field. + [JsonPropertyName("sub_chapters")] + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + [Key("sub_chapters")] + public List? SubChapters { get; set; } +} + +[MessagePackObject] +public class SubChapterDto +{ + [JsonPropertyName("story_id")] + [Key("story_id")] + public int StoryId { get; set; } + + [JsonPropertyName("sub_chapter_id")] + [Key("sub_chapter_id")] + public int SubChapterId { get; set; } + + [JsonPropertyName("is_finish")] + [Key("is_finish")] + public bool IsFinish { get; set; } + + [JsonPropertyName("is_maintenance_chapter")] + [Key("is_maintenance_chapter")] + public bool IsMaintenanceChapter { get; set; } } [MessagePackObject] diff --git a/SVSim.EmulatedEntrypoint/Models/Dtos/Story/SectionDtos.cs b/SVSim.EmulatedEntrypoint/Models/Dtos/Story/SectionDtos.cs index de4db6e..d4baa27 100644 --- a/SVSim.EmulatedEntrypoint/Models/Dtos/Story/SectionDtos.cs +++ b/SVSim.EmulatedEntrypoint/Models/Dtos/Story/SectionDtos.cs @@ -106,4 +106,15 @@ public class SectionEntry [JsonPropertyName("is_play_another_end_appearance_animation")] [Key("is_play_another_end_appearance_animation")] public bool IsPlayAnotherEndAppearanceAnimation { get; set; } + + // Prod sends is_spoiler as 0/1 int (not bool) and spoiler_message as a SystemText key + // (e.g. "story_section_14"). Used by limited-story sections that sit inside main-story + // worlds — the client hides their title until you've cleared the gating main section. + [JsonPropertyName("is_spoiler")] + [Key("is_spoiler")] + public int IsSpoiler { get; set; } + + [JsonPropertyName("spoiler_message")] + [Key("spoiler_message")] + public string SpoilerMessage { get; set; } = ""; } diff --git a/SVSim.EmulatedEntrypoint/Services/StoryService.cs b/SVSim.EmulatedEntrypoint/Services/StoryService.cs index 51a2bdb..82dbac6 100644 --- a/SVSim.EmulatedEntrypoint/Services/StoryService.cs +++ b/SVSim.EmulatedEntrypoint/Services/StoryService.cs @@ -1,4 +1,3 @@ -using System.Text.RegularExpressions; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; using SVSim.Database; @@ -14,8 +13,6 @@ namespace SVSim.EmulatedEntrypoint.Services; public class StoryService : IStoryService { - private static readonly Regex BranchSuffixRx = new(@"^\d+[a-zA-Z]+", RegexOptions.Compiled); - private readonly IStoryMasterRepository _master; private readonly IViewerStoryProgressRepository _viewer; private readonly RewardGrantService _rewards; @@ -49,7 +46,13 @@ public class StoryService : IStoryService if (chapters.Count == 0) return new InfoResponse(); - var storyIds = chapters.Select(c => c.StoryId).ToList(); + // Include sub-chapter story_ids in the progress lookup — they're independent progress + // markers (each sub vignette gets its own ViewerStoryProgress row) and feed the per-sub + // is_finish flag in the response. + var storyIds = chapters.Select(c => c.StoryId) + .Concat(chapters.SelectMany(c => c.SubChapters).Select(sc => sc.SubChapterStoryId)) + .Distinct() + .ToList(); // Sequential awaits — both repos share the scoped DbContext, and EF Core forbids // concurrent operations on a single context. Parallel Task.WhenAll throws // InvalidOperationException ("A second operation was started on this context..."). @@ -62,18 +65,28 @@ public class StoryService : IStoryService foreach (var c in chapters.OrderBy(x => ChapterRowNum(x.ChapterId)) .ThenBy(x => x.ChapterId, StringComparer.Ordinal)) { - bool isBranchChild = BranchSuffixRx.IsMatch(c.ChapterId); var parent = chapters.FirstOrDefault(p => !ReferenceEquals(p, c) && p.NextChapterId.Split(' ', StringSplitOptions.RemoveEmptyEntries).Contains(c.ChapterId)); - bool released; - if (parent is null) released = true; - else if (isBranchChild) released = unlocked.Contains(c.StoryId); - else released = (progress.TryGetValue(parent.StoryId, out var pp)) - && (pp.IsFinish || pp.IsSkipped); + // A chapter is a "branch child" only at the SPLIT point — where the parent declares + // multiple successors (e.g. ch2.next="3a 3b 3c"). The alphabetic suffix is inherited + // across the rest of the branched path (3a→4a→5a→...) but only ch3a/3b/3c carry the + // explicit unlock gate; downstream "4a"/"4b" are normal single successors. Suffix-based + // detection (^\d+[a-z]+) wrongly tagged every "4a"-style chapter as a branch child. + bool isBranchChild = parent is not null + && parent.NextChapterId.Split(' ', StringSplitOptions.RemoveEmptyEntries).Length > 1; - // Optional required_chapter_id gate + // is_released = "chapter visible in the section UI" — gated on parent progress. + // For branch children this is the PARENT's finish state, NOT whether THIS branch + // was selected — siblings of the chosen branch must still appear so the player + // sees the alternative paths exist (rendered locked). Verified against prod + // traffic_prod_haven_choices.ndjson lines 22/28/34 where 3a/3b/3c all carry + // is_released=true regardless of which branch was previously chosen. + bool released = parent is null + || (progress.TryGetValue(parent.StoryId, out var pp) && (pp.IsFinish || pp.IsSkipped)); + + // Optional required_chapter_id gate (additional release condition only). if (!string.IsNullOrEmpty(c.RequiredChapterId) && byChapterId.TryGetValue(c.RequiredChapterId, out var req)) { @@ -82,6 +95,13 @@ public class StoryService : IStoryService released = released && reqDone; } + // is_lock = "chapter has an explicit gate not yet satisfied" — INDEPENDENT of + // is_released. The only gate in the current catalog is the branch-sibling + // selection: unselected branch children carry is_lock=true even though they + // remain visible. Non-branch chapters never carry an implicit lock; their + // availability is communicated entirely through is_released. + bool locked = isBranchChild && !unlocked.Contains(c.StoryId); + var pState = progress.GetValueOrDefault(c.StoryId); resp.StoryMasterList.Add(new StoryMasterEntry @@ -90,7 +110,6 @@ public class StoryService : IStoryService SectionId = c.SectionId.ToString(), CharaId = c.CharaId.ToString(), ChapterId = c.ChapterId, - IsLock = !released, NextChapterId = c.NextChapterId, RequiredChapterId = c.RequiredChapterId ?? "", SelectionDisplayPosition = c.SelectionDisplayPosition ?? "", @@ -127,8 +146,19 @@ public class StoryService : IStoryService RewardDetailId = r.RewardDetailId.ToString(), RewardNumber = r.RewardNumber.ToString(), }).ToList(), + SubChapters = c.SubChapters.Count == 0 + ? null + : c.SubChapters.Select(sc => new SubChapterDto + { + StoryId = sc.SubChapterStoryId, + SubChapterId = sc.SubChapterId, + IsFinish = progress.TryGetValue(sc.SubChapterStoryId, out var sp) && sp.IsFinish, + IsMaintenanceChapter = sc.IsMaintenanceChapter, + }).ToList(), IsMaintenanceChapter = c.IsMaintenanceChapter, IsReleased = released, + IsLock = locked, + UnlockText = c.UnlockText ?? "", IsSkipped = pState?.IsSkipped ?? false, IsFinish = pState?.IsFinish ?? false, IsPlayAnotherEndAppearanceAnimation = c.IsPlayAnotherEndAppearanceAnimation, @@ -241,6 +271,8 @@ public class StoryService : IStoryService StoryTypeOverwrite = s.StoryTypeOverwrite.ToString(), IsNew = false, IsPlayAnotherEndAppearanceAnimation = s.IsPlayAnotherEndAppearanceAnimation, + IsSpoiler = s.IsSpoiler, + SpoilerMessage = s.SpoilerMessage, }); } worldDto.IsComplete = worldComplete; @@ -358,22 +390,49 @@ public class StoryService : IStoryService public async Task FinishAsync(StoryApiType apiType, FinishRequest req, long viewerId) { var chapter = await _master.GetChapterByIdAsync(req.StoryId); - if (chapter is null) return new FinishResponse(); + if (chapter is null) + { + // Sub-chapter story_ids (e.g. section 9 ch.13's vignettes at 375-378) have no chapter + // master row of their own — they're just progress markers on the parent. The client + // sends them directly to /finish per StoryFinishTask.GetFinishStoryId. Resolve via the + // StorySubChapter lookup and record progress at the sub's id with isFinish+isSkipped + // both true (sub-chapters are always narrative-only — no battle settings on the wire). + var sub = await _master.FindSubChapterByStoryIdAsync(req.StoryId); + if (sub is null) return new FinishResponse(); + await _viewer.UpsertProgressAsync(viewerId, req.StoryId, isFinish: true, isSkipped: true); + return new FinishResponse(); + } var progress = (await _viewer.GetProgressForChaptersAsync(viewerId, new[] { req.StoryId })) .GetValueOrDefault(req.StoryId); var resp = new FinishResponse(); - if (req.IsPlayShape) + // Three finish shapes: + // 1. Play-shape (class_id present): user fought the battle → is_finish=true. + // 2. No-battle chapter + finish=1: narrative-only chapter that the client auto-finishes + // with no class_id. Prod marks BOTH is_finish=true AND is_skipped=true — the client + // uses is_finish for the green "Cleared" badge, so leaving it false here renders the + // blue "AlreadyRead" badge instead (verified against traffic_prod_limited_stories + // story_id=1 /info after /finish). + // 3. Skip-shape on battle chapter: user chose to skip → is_skipped=true only. + bool isPlayShape = req.IsPlayShape; + bool isNoBattleAutoFinish = !isPlayShape && !chapter.BattleExists; + + if (isPlayShape || isNoBattleAutoFinish) { bool firstClear = progress is null || !progress.IsFinish; - await _viewer.UpsertProgressAsync(viewerId, req.StoryId, isFinish: true, isSkipped: null); + await _viewer.UpsertProgressAsync( + viewerId, req.StoryId, + isFinish: true, + isSkipped: isNoBattleAutoFinish ? true : (bool?)null); - if (firstClear) + if (firstClear && chapter.Rewards.Count > 0) { // Load viewer with all collections RewardGrantService might mutate. Split-query - // to avoid the cartesian-explode pitfall (CLAUDE.md "EF split query"). + // to avoid the cartesian-explode pitfall (CLAUDE.md "EF split query"). Skip the + // load entirely when the chapter has no rewards — common for narrative-only + // chapters (limited/event story) where the only side effect is the progress upsert. var viewer = await _db.Viewers .Include(v => v.Cards).ThenInclude(c => c.Card) .Include(v => v.Sleeves) @@ -429,7 +488,12 @@ public class StoryService : IStoryService } await _db.SaveChangesAsync(); + } + if (firstClear && isPlayShape) + { + // XP grant requires a class_id (only sent on play-shape). No-battle chapters + // have no class context — prod returns get_class_experience=0 for them. var xp = _configService.Get().ClassXpPerClear; resp.GetClassExperience = xp.ToString(); // class_experience / class_level updates would consult the viewer's per-class XP diff --git a/SVSim.UnitTests/Story/StoryServiceTests.cs b/SVSim.UnitTests/Story/StoryServiceTests.cs index 48ad062..e759b40 100644 --- a/SVSim.UnitTests/Story/StoryServiceTests.cs +++ b/SVSim.UnitTests/Story/StoryServiceTests.cs @@ -155,8 +155,8 @@ public class StoryServiceTests var resp = await _service.GetInfoAsync(StoryApiType.Main, 17, 500901, viewerId: 7L); - Assert.That(resp.StoryMasterList.Single(c => c.ChapterId == "3a").IsReleased, Is.False); - Assert.That(resp.StoryMasterList.Single(c => c.ChapterId == "3b").IsReleased, Is.False); + Assert.That(resp.StoryMasterList.Single(c => c.ChapterId == "3a").IsLock, Is.True); + Assert.That(resp.StoryMasterList.Single(c => c.ChapterId == "3b").IsLock, Is.True); } [Test] @@ -176,8 +176,96 @@ public class StoryServiceTests var resp = await _service.GetInfoAsync(StoryApiType.Main, 17, 500901, viewerId: 7L); - Assert.That(resp.StoryMasterList.Single(c => c.ChapterId == "3a").IsReleased, Is.True); - Assert.That(resp.StoryMasterList.Single(c => c.ChapterId == "3b").IsReleased, Is.False); + Assert.That(resp.StoryMasterList.Single(c => c.ChapterId == "3a").IsLock, Is.False, "selected branch is playable"); + Assert.That(resp.StoryMasterList.Single(c => c.ChapterId == "3b").IsLock, Is.True, "unselected branch is locked"); + } + + [Test] + public async Task GetInfoAsync_branch_siblings_stay_visible_after_parent_finished_even_when_locked() + { + // Section 17 chara 500901 (Havencraft): ch2's selection_chapter_id picks one of 3a/3b/3c. + // The two NOT chosen must stay visible (is_released=true) with is_lock=true so the UI + // can render them as "locked alternative branches" — they vanish entirely if we tie + // is_released to is_lock. Verified against traffic_prod_haven_choices.ndjson lines 22,28,34 + // (post-clear state showing chosen branch unlocked, others released-but-locked). + var chapters = new List { + Ch(200, 17, 500901, "2", "3a 3b 3c"), + Ch(201, 17, 500901, "3a", "4a"), + Ch(202, 17, 500901, "3b", "4b"), + Ch(203, 17, 500901, "3c", "4c"), + }; + _master.Setup(m => m.GetChaptersBySectionCharaAsync(17, 500901)).ReturnsAsync(chapters); + _viewer.Setup(v => v.GetProgressForChaptersAsync(7L, It.IsAny>())) + .ReturnsAsync(new Dictionary { + { 200, new ViewerStoryProgress { StoryId = 200, IsFinish = true } } }); + _viewer.Setup(v => v.GetBranchUnlockedStoryIdsAsync(7L, It.IsAny>())) + .ReturnsAsync(new HashSet { 201 }); // user picked 3a + + var resp = await _service.GetInfoAsync(StoryApiType.Main, 17, 500901, viewerId: 7L); + + var c3a = resp.StoryMasterList.Single(c => c.ChapterId == "3a"); + var c3b = resp.StoryMasterList.Single(c => c.ChapterId == "3b"); + var c3c = resp.StoryMasterList.Single(c => c.ChapterId == "3c"); + + Assert.That(c3a.IsReleased, Is.True); Assert.That(c3a.IsLock, Is.False); // selected + Assert.That(c3b.IsReleased, Is.True); Assert.That(c3b.IsLock, Is.True); // visible-but-locked + Assert.That(c3c.IsReleased, Is.True); Assert.That(c3c.IsLock, Is.True); // visible-but-locked + } + + [Test] + public async Task GetInfoAsync_emits_unlock_text_from_chapter_master() + { + // Client renders "Complete the following requirements to unlock this story: {0}" and + // substitutes {0} with unlock_text. An empty unlock_text leaves the literal "{0}" visible. + // Verified against traffic_prod_haven_choices.ndjson where every branch sibling carries + // a populated unlock_text (e.g. "Select 'Head to the West Tower' in Chapter 2"). + var parent = Ch(200, 17, 500901, "2", "3a 3b"); + var branch3b = Ch(202, 17, 500901, "3b", "4b"); + branch3b.UnlockText = "Select \"Look for Leads on Amaryllis\" in Chapter 2"; + _master.Setup(m => m.GetChaptersBySectionCharaAsync(17, 500901)) + .ReturnsAsync(new List { parent, branch3b }); + _viewer.Setup(v => v.GetProgressForChaptersAsync(7L, It.IsAny>())) + .ReturnsAsync(new Dictionary { + { 200, new ViewerStoryProgress { StoryId = 200, IsFinish = true } } }); + _viewer.Setup(v => v.GetBranchUnlockedStoryIdsAsync(7L, It.IsAny>())) + .ReturnsAsync(new HashSet()); + + var resp = await _service.GetInfoAsync(StoryApiType.Main, 17, 500901, viewerId: 7L); + + var c3b = resp.StoryMasterList.Single(c => c.ChapterId == "3b"); + Assert.That(c3b.IsLock, Is.True, "precondition: chapter is locked"); + Assert.That(c3b.UnlockText, Is.EqualTo("Select \"Look for Leads on Amaryllis\" in Chapter 2")); + } + + [Test] + public async Task GetInfoAsync_non_branch_downstream_of_unfinished_branch_is_unreleased_but_unlocked() + { + // Prod traffic_prod_haven_choices line 40: after ch3a is finished, ch4a is released+playable + // but ch4b/ch4c are NOT released yet (their parent ch3b/3c not finished) AND is_lock=false + // — is_lock is reserved for the branch-sibling gate, not the inverse of is_released. + var chapters = new List { + Ch(200, 17, 500901, "2", "3a 3b 3c"), + Ch(201, 17, 500901, "3a", "4a"), + Ch(202, 17, 500901, "3b", "4b"), + Ch(203, 17, 500901, "3c", "4c"), + Ch(300, 17, 500901, "4a", "5a"), + Ch(301, 17, 500901, "4b", "5b"), + Ch(302, 17, 500901, "4c", "7"), + }; + _master.Setup(m => m.GetChaptersBySectionCharaAsync(17, 500901)).ReturnsAsync(chapters); + _viewer.Setup(v => v.GetProgressForChaptersAsync(7L, It.IsAny>())) + .ReturnsAsync(new Dictionary { + { 200, new ViewerStoryProgress { StoryId = 200, IsFinish = true } }, + { 201, new ViewerStoryProgress { StoryId = 201, IsFinish = true } } }); + _viewer.Setup(v => v.GetBranchUnlockedStoryIdsAsync(7L, It.IsAny>())) + .ReturnsAsync(new HashSet { 201 }); // user picked + finished 3a + + var resp = await _service.GetInfoAsync(StoryApiType.Main, 17, 500901, viewerId: 7L); + + var c4a = resp.StoryMasterList.Single(c => c.ChapterId == "4a"); + var c4b = resp.StoryMasterList.Single(c => c.ChapterId == "4b"); + Assert.That(c4a.IsReleased, Is.True); Assert.That(c4a.IsLock, Is.False); // playable + Assert.That(c4b.IsReleased, Is.False); Assert.That(c4b.IsLock, Is.False); // not reached, but not "locked" } [Test] @@ -222,6 +310,31 @@ public class StoryServiceTests Assert.That(chara2.IsFinished, Is.False); // chapter 6 not done yet } + [Test] + public async Task GetSectionsAsync_passes_through_spoiler_fields_from_section_master() + { + // Limited-story sections (section_id >= 9000) sit inside main-story worlds and prod uses + // is_spoiler=1 + spoiler_message="story_section_N" to hide the section name until you've + // cleared main section N. Verified against prod /story/section responses where section + // 9003 carries is_spoiler=1, spoiler_message="story_section_14". + _master.Setup(m => m.GetSectionsByFamilyAsync(StoryApiType.Main)) + .ReturnsAsync(new List { + new() { Id = 9003, WorldId = 1, StoryApiType = StoryApiType.Limited, + IsLeaderSelect = false, IsSpoiler = 1, SpoilerMessage = "story_section_14" } }); + _master.Setup(m => m.GetWorldsForSectionsAsync(It.IsAny>())) + .ReturnsAsync(new List { new() { Id = 1, TitleTextKey = "world_1" } }); + _master.Setup(m => m.GetChaptersBySectionsAsync(It.IsAny>())) + .ReturnsAsync(new List()); + _viewer.Setup(v => v.GetProgressForChaptersAsync(7L, It.IsAny>())) + .ReturnsAsync(new Dictionary()); + + var resp = await _service.GetSectionsAsync(StoryApiType.Main, viewerId: 7L); + + var section = resp.WorldList["1"].SectionList.Single(s => s.SectionId == "9003"); + Assert.That(section.IsSpoiler, Is.EqualTo(1)); + Assert.That(section.SpoilerMessage, Is.EqualTo("story_section_14")); + } + [Test] public async Task GetLeaderSelectAsync_section_with_custom_leaders_returns_only_those_charas_in_min_story_id_order() { @@ -279,6 +392,85 @@ public class StoryServiceTests Assert.That(((Array)resp["0"]).Length, Is.EqualTo(0)); } + [Test] + public async Task GetInfoAsync_emits_sub_chapters_with_per_sub_is_finish() + { + // Section 9 ch.13 (story_id 374) carries 5 sub-chapters (374/1, 375/2, 376/3, 377/4, 378/5). + // The client's SubChapterData parser reads is_finish per sub-chapter to derive the parent's + // ChapterClearStatus (AllCleared / AlreadyRead / NotCleared). Verified against + // traffic_prod_more_stories.ndjson section_id=9 /info response. + var parent = Ch(374, 9, 0, "13", "14", battle: false); + parent.SubChapters.Add(new StorySubChapter { SubChapterId = 1, SubChapterStoryId = 374 }); + parent.SubChapters.Add(new StorySubChapter { SubChapterId = 2, SubChapterStoryId = 375 }); + parent.SubChapters.Add(new StorySubChapter { SubChapterId = 3, SubChapterStoryId = 376 }); + var ch14 = Ch(379, 9, 0, "14", "0", battle: false); + + _master.Setup(m => m.GetChaptersBySectionCharaAsync(9, 0)) + .ReturnsAsync(new List { parent, ch14 }); + _viewer.Setup(v => v.GetProgressForChaptersAsync(7L, It.IsAny>())) + .ReturnsAsync(new Dictionary { + { 374, new ViewerStoryProgress { StoryId = 374, IsFinish = true } }, + { 375, new ViewerStoryProgress { StoryId = 375, IsFinish = true } } }); + _viewer.Setup(v => v.GetBranchUnlockedStoryIdsAsync(7L, It.IsAny>())) + .ReturnsAsync(new HashSet()); + + var resp = await _service.GetInfoAsync(StoryApiType.Main, 9, 0, viewerId: 7L); + + var ch13 = resp.StoryMasterList.Single(c => c.ChapterId == "13"); + Assert.That(ch13.SubChapters, Has.Count.EqualTo(3)); + var subs = ch13.SubChapters.OrderBy(s => s.SubChapterId).ToList(); + Assert.That(subs[0].StoryId, Is.EqualTo(374)); Assert.That(subs[0].IsFinish, Is.True); + Assert.That(subs[1].StoryId, Is.EqualTo(375)); Assert.That(subs[1].IsFinish, Is.True); + Assert.That(subs[2].StoryId, Is.EqualTo(376)); Assert.That(subs[2].IsFinish, Is.False); + + // Regular chapter (no subs) should not carry the sub_chapters key on the wire at all — + // prod omits it entirely. We leave the DTO property null so the global WhenWritingNull + // policy drops the key during serialization. + var c14 = resp.StoryMasterList.Single(c => c.ChapterId == "14"); + Assert.That(c14.SubChapters, Is.Null); + } + + [Test] + public async Task FinishAsync_sub_chapter_id_marks_progress_via_resolution() + { + // Client sends /finish with the sub-chapter's story_id (e.g. 375), not the parent's. + // Our chapter table has no row for 375 — GetChapterByIdAsync returns null. The service + // must fall through to StorySubChapter resolution and upsert progress at the sub's id + // with isFinish=true, isSkipped=true (sub-chapters are always narrative-only). + // Confirmed against StoryFinishTask.cs line 391 in decompiled client. + _master.Setup(m => m.GetChapterByIdAsync(375)).ReturnsAsync((StoryChapter?)null); + _master.Setup(m => m.FindSubChapterByStoryIdAsync(375)) + .ReturnsAsync(new StorySubChapter { SubChapterId = 2, SubChapterStoryId = 375 }); + + var req = new FinishRequest { StoryId = 375, IsFinish = 1, ClassId = null }; + await _service.FinishAsync(StoryApiType.Main, req, viewerId: 7L); + + _viewer.Verify(v => v.UpsertProgressAsync(7L, 375, true, true), Times.Once); + } + + [Test] + public async Task FinishAsync_no_battle_chapter_marks_both_isFinish_and_isSkipped_true() + { + // Limited-story narrative chapters have battle_exists=false. Prod's /info returns + // is_finish=true AND is_skipped=true for these once /finish is called — the client uses + // is_finish for the green "Cleared" badge, so leaving is_finish=false (only is_skipped) + // renders the blue "AlreadyRead" badge instead. Verified against + // traffic_prod_limited_stories.ndjson story_id=1 after first /finish. + var chapter = Ch(100, 9001, 0, "1", "2", battle: false); + _master.Setup(m => m.GetChapterByIdAsync(100)).ReturnsAsync(chapter); + _viewer.Setup(v => v.GetProgressForChaptersAsync(7L, It.IsAny>())) + .ReturnsAsync(new Dictionary()); + + var req = new FinishRequest { + StoryId = 100, IsFinish = 1, ClassId = null, // play-shape absent (no battle to play) + SelectionChapterId = null, + }; + + await _service.FinishAsync(StoryApiType.Limited, req, viewerId: 7L); + + _viewer.Verify(v => v.UpsertProgressAsync(7L, 100, true, true), Times.Once); + } + [Test] public async Task FinishAsync_skip_shape_sets_isSkipped_and_grants_nothing() {