Files
YumeMichi 750c2cf3d0 Implement secretbox handlers and align gacha behavior
- Add secretbox API schemas, handlers, and routes for all/showDetail/pon/multi
- Load secretbox server data through the shared serverdata loader
- Fix rarity mapping and pool rules for SR/SSR/UR special boxes
- Implement thanks festival pool behavior, including UR guarantee and SSR/UR-only rates
- Correct animation-related fields such as is_hit and lowest_rarity, and add rare UR promotion animation

Signed-off-by: Sean Du <do4suki@gmail.com>
2026-06-05 21:57:04 +08:00

931 lines
29 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"use_cache": 1,
"is_unit_max": false,
"item_list": [
{
"item_id": 1,
"amount": 0
},
{
"item_id": 5,
"amount": 1
},
{
"item_id": 8,
"amount": 0
},
{
"item_id": 9,
"amount": 0
},
{
"item_id": 10,
"amount": 0
},
{
"item_id": 11,
"amount": 0
},
{
"item_id": 12,
"amount": 0
},
{
"item_id": 13,
"amount": 0
},
{
"item_id": 14,
"amount": 0
},
{
"item_id": 15,
"amount": 0
},
{
"item_id": 19,
"amount": 0
},
{
"item_id": 20,
"amount": 0
},
{
"item_id": 23,
"amount": 0
},
{
"item_id": 24,
"amount": 0
},
{
"item_id": 25,
"amount": 0
},
{
"item_id": 28,
"amount": 0
},
{
"item_id": 30,
"amount": 0
},
{
"item_id": 31,
"amount": 0
},
{
"item_id": 51,
"amount": 0
},
{
"item_id": 53,
"amount": 0
},
{
"item_id": 56,
"amount": 0
},
{
"item_id": 59,
"amount": 0
},
{
"item_id": 61,
"amount": 132
},
{
"item_id": 62,
"amount": 284
},
{
"item_id": 63,
"amount": 324
},
{
"item_id": 67,
"amount": 0
},
{
"item_id": 69,
"amount": 0
},
{
"item_id": 72,
"amount": 0
},
{
"item_id": 74,
"amount": 0
},
{
"item_id": 92,
"amount": 0
},
{
"item_id": 93,
"amount": 0
},
{
"item_id": 94,
"amount": 0
},
{
"item_id": 95,
"amount": 0
},
{
"item_id": 126,
"amount": 0
},
{
"item_id": 129,
"amount": 0
},
{
"item_id": 146,
"amount": 0
},
{
"item_id": 147,
"amount": 0
},
{
"item_id": 168,
"amount": 1043
},
{
"item_id": 173,
"amount": 0
},
{
"item_id": 174,
"amount": 0
},
{
"item_id": 179,
"amount": 0
},
{
"item_id": 180,
"amount": 0
},
{
"item_id": 181,
"amount": 0
},
{
"item_id": 182,
"amount": 0
},
{
"item_id": 186,
"amount": 0
},
{
"item_id": 187,
"amount": 0
},
{
"item_id": 188,
"amount": 40
},
{
"item_id": 189,
"amount": 54
},
{
"item_id": 190,
"amount": 96
},
{
"item_id": 191,
"amount": 246
},
{
"item_id": 192,
"amount": 0
},
{
"item_id": 193,
"amount": 0
},
{
"item_id": 194,
"amount": 0
},
{
"item_id": 195,
"amount": 0
},
{
"item_id": 196,
"amount": 0
},
{
"item_id": 197,
"amount": 0
},
{
"item_id": 214,
"amount": 0
},
{
"item_id": 216,
"amount": 0
},
{
"item_id": 217,
"amount": 0
},
{
"item_id": 247,
"amount": 0
},
{
"item_id": 248,
"amount": 0
},
{
"item_id": 250,
"amount": 0
},
{
"item_id": 256,
"amount": 0
},
{
"item_id": 265,
"amount": 0
},
{
"item_id": 267,
"amount": 0
},
{
"item_id": 268,
"amount": 0
},
{
"item_id": 269,
"amount": 0
},
{
"item_id": 277,
"amount": 0
},
{
"item_id": 280,
"amount": 0
},
{
"item_id": 281,
"amount": 0
},
{
"item_id": 282,
"amount": 0
},
{
"item_id": 283,
"amount": 0
},
{
"item_id": 284,
"amount": 0
},
{
"item_id": 285,
"amount": 0
},
{
"item_id": 313,
"amount": 0
},
{
"item_id": 314,
"amount": 0
},
{
"item_id": 315,
"amount": 0
},
{
"item_id": 316,
"amount": 0
},
{
"item_id": 317,
"amount": 0
},
{
"item_id": 344,
"amount": 0
},
{
"item_id": 345,
"amount": 0
},
{
"item_id": 346,
"amount": 0
},
{
"item_id": 347,
"amount": 0
},
{
"item_id": 348,
"amount": 0
},
{
"item_id": 353,
"amount": 0
},
{
"item_id": 395,
"amount": 0
},
{
"item_id": 412,
"amount": 0
},
{
"item_id": 422,
"amount": 22
},
{
"item_id": 423,
"amount": 11
},
{
"item_id": 424,
"amount": 33
},
{
"item_id": 1000,
"amount": 61
},
{
"item_id": 1200,
"amount": 702
},
{
"item_id": 10001,
"amount": 0
},
{
"item_id": 10003,
"amount": 0
},
{
"item_id": 10004,
"amount": 0
},
{
"item_id": 10005,
"amount": 0
},
{
"item_id": 10006,
"amount": 0
},
{
"item_id": 10007,
"amount": 0
},
{
"item_id": 10008,
"amount": 0
},
{
"item_id": 10010,
"amount": 0
},
{
"item_id": 10012,
"amount": 0
},
{
"item_id": 10015,
"amount": 0
},
{
"item_id": 10017,
"amount": 0
},
{
"item_id": 10019,
"amount": 0
},
{
"item_id": 10020,
"amount": 0
},
{
"item_id": 10022,
"amount": 0
},
{
"item_id": 10023,
"amount": 0
},
{
"item_id": 10024,
"amount": 0
},
{
"item_id": 10026,
"amount": 0
},
{
"item_id": 10031,
"amount": 0
},
{
"item_id": 10032,
"amount": 0
},
{
"item_id": 10047,
"amount": 0
},
{
"item_id": 10048,
"amount": 0
},
{
"item_id": 10053,
"amount": 1
},
{
"item_id": 10066,
"amount": 4
},
{
"item_id": 10067,
"amount": 0
},
{
"item_id": 10074,
"amount": 0
},
{
"item_id": 10090,
"amount": 0
},
{
"item_id": 10093,
"amount": 0
},
{
"item_id": 14001,
"amount": 0
}
],
"gauge_info": {
"max_gauge_point": 100,
"gauge_point": 60
},
"member_category_list": [
{
"member_category": 1,
"page_list": [
{
"menu_asset": "assets/image/secretbox/icon/s_ba_1718_1.png",
"page_order": 1457,
"animation_assets": {
"type": 1,
"background_asset": "assets/image/secretbox/background/bg_1718.png",
"additional_asset_1": "assets/image/secretbox/navi/navi_1718.png",
"additional_asset_2": "assets/image/secretbox/title/title_1718.png",
"additional_asset_3": "assets/image/secretbox/appeal/appeal_1718.png"
},
"button_list": [
{
"secret_box_button_type": 1,
"cost_list": [
{
"id": 330,
"payable": true,
"unit_count": 1,
"type": 3001,
"item_id": null,
"amount": 5
}
],
"secret_box_name": "学园偶像祭大感谢祭BOX招募〜μ's〜 第1弹"
},
{
"secret_box_button_type": 2,
"cost_list": [
{
"id": 333,
"payable": false,
"unit_count": 11,
"type": 3001,
"item_id": null,
"amount": 50
}
],
"secret_box_name": "学园偶像祭大感谢祭BOX招募〜μ's〜 第1弹",
"balloon_asset": "assets/image/secretbox/balloon/balloon_31.png"
},
{
"secret_box_button_type": 16,
"cost_list": [
{
"id": 336,
"payable": false,
"unit_count": 11,
"type": 1000,
"item_id": 8,
"amount": 1
}
],
"secret_box_name": "学园偶像祭大感谢祭BOX招募〜μ's〜 第1弹",
"balloon_asset": "assets/image/secretbox/balloon/balloon_31.png"
}
],
"secret_box_info": {
"secret_box_id": 1718,
"secret_box_type": 0,
"name": "学园偶像祭大感谢祭BOX招募〜μ's〜 第1弹",
"description": null,
"start_date": "2023-03-05 15:00:00",
"end_date": "2037-03-31 14:59:59",
"show_end_date": "2037-03-31 14:59:59",
"add_gauge": 10,
"always_display_flag": 1,
"pon_count": 17,
"pon_upper_limit": 0
}
},
{
"menu_asset": "assets/image/secretbox/icon/s_ba_22_1.png",
"page_order": 6998,
"animation_assets": {
"type": 5,
"background_asset": "assets/image/secretbox/background/bg_22.png",
"additional_asset_1": "assets/image/secretbox/navi/navi_22.png",
"additional_asset_2": "assets/image/secretbox/title/title_22.png"
},
"button_list": [
{
"secret_box_button_type": 9,
"cost_list": [
{
"id": 17,
"payable": false,
"unit_count": 1,
"type": 1000,
"item_id": 5,
"amount": 5
}
],
"secret_box_name": "SR・UR招募 ~μ's",
"balloon_asset": "assets/image/secretbox/balloon/balloon_5.png"
},
{
"secret_box_button_type": 10,
"cost_list": [
{
"id": 18,
"payable": false,
"unit_count": 1,
"type": 1000,
"item_id": 5,
"amount": 10
}
],
"secret_box_name": "SSR・UR招募 ~μ's",
"balloon_asset": "assets/image/secretbox/balloon/balloon_6.png"
},
{
"secret_box_button_type": 11,
"cost_list": [
{
"id": 19,
"payable": false,
"unit_count": 1,
"type": 1000,
"item_id": 5,
"amount": 25
}
],
"secret_box_name": "UR招募 ~μ's",
"balloon_asset": "assets/image/secretbox/balloon/balloon_7.png"
}
],
"secret_box_info": {
"secret_box_id": 22,
"secret_box_type": 5,
"name": "SR・SSR・UR招募~μ's~",
"description": null,
"start_date": "2013-07-31 15:00:00",
"end_date": "2037-12-31 23:59:59",
"add_gauge": 0,
"always_display_flag": 1,
"pon_count": 98,
"pon_upper_limit": 0
}
}
]
},
{
"member_category": 2,
"page_list": [
{
"menu_asset": "assets/image/secretbox/icon/s_ba_1719_1.png",
"page_order": 11426,
"animation_assets": {
"type": 1,
"background_asset": "assets/image/secretbox/background/bg_1719.png",
"additional_asset_1": "assets/image/secretbox/navi/navi_1719.png",
"additional_asset_2": "assets/image/secretbox/title/title_1719.png",
"additional_asset_3": "assets/image/secretbox/appeal/appeal_1719.png"
},
"button_list": [
{
"secret_box_button_type": 1,
"cost_list": [
{
"id": 330,
"payable": true,
"unit_count": 1,
"type": 3001,
"item_id": null,
"amount": 5
}
],
"secret_box_name": "学园偶像祭大感谢祭BOX招募〜Aqours〜 第1弹"
},
{
"secret_box_button_type": 2,
"cost_list": [
{
"id": 333,
"payable": false,
"unit_count": 11,
"type": 3001,
"item_id": null,
"amount": 50
}
],
"secret_box_name": "学园偶像祭大感谢祭BOX招募〜Aqours〜 第1弹",
"balloon_asset": "assets/image/secretbox/balloon/balloon_31.png"
},
{
"secret_box_button_type": 16,
"cost_list": [
{
"id": 336,
"payable": false,
"unit_count": 11,
"type": 1000,
"item_id": 8,
"amount": 1
}
],
"secret_box_name": "学园偶像祭大感谢祭BOX招募〜Aqours〜 第1弹",
"balloon_asset": "assets/image/secretbox/balloon/balloon_31.png"
}
],
"secret_box_info": {
"secret_box_id": 1719,
"secret_box_type": 0,
"name": "学园偶像祭大感谢祭BOX招募〜Aqours〜 第1弹",
"description": null,
"start_date": "2023-03-05 15:00:00",
"end_date": "2037-03-31 14:59:59",
"show_end_date": "2037-03-31 14:59:59",
"add_gauge": 10,
"always_display_flag": 1,
"pon_count": 0,
"pon_upper_limit": 0
}
},
{
"menu_asset": "assets/image/secretbox/icon/s_ba_73_1.png",
"page_order": 16998,
"animation_assets": {
"type": 5,
"background_asset": "assets/image/secretbox/background/bg_73.png",
"additional_asset_1": "assets/image/secretbox/navi/navi_73.png",
"additional_asset_2": "assets/image/secretbox/title/title_22.png"
},
"button_list": [
{
"secret_box_button_type": 9,
"cost_list": [
{
"id": 17,
"payable": false,
"unit_count": 1,
"type": 1000,
"item_id": 5,
"amount": 5
}
],
"secret_box_name": "SR・UR招募 Aqours",
"balloon_asset": "assets/image/secretbox/balloon/balloon_5.png"
},
{
"secret_box_button_type": 10,
"cost_list": [
{
"id": 18,
"payable": false,
"unit_count": 1,
"type": 1000,
"item_id": 5,
"amount": 10
}
],
"secret_box_name": "SSR・UR招募 Aqours",
"balloon_asset": "assets/image/secretbox/balloon/balloon_6.png"
},
{
"secret_box_button_type": 11,
"cost_list": [
{
"id": 19,
"payable": false,
"unit_count": 1,
"type": 1000,
"item_id": 5,
"amount": 25
}
],
"secret_box_name": "UR招募 Aqours",
"balloon_asset": "assets/image/secretbox/balloon/balloon_7.png"
}
],
"secret_box_info": {
"secret_box_id": 73,
"secret_box_type": 5,
"name": "SR・SSR・UR招募 ~Aqours~",
"description": null,
"start_date": "2017-03-31 15:00:00",
"end_date": "2037-12-31 23:59:59",
"add_gauge": 0,
"always_display_flag": 1,
"pon_count": 0,
"pon_upper_limit": 0
}
}
]
},
{
"member_category": 3,
"page_list": [
{
"menu_asset": "assets/image/secretbox/icon/s_ba_1720_1.png",
"page_order": 24986,
"animation_assets": {
"type": 1,
"background_asset": "assets/image/secretbox/background/bg_1720.png",
"additional_asset_1": "assets/image/secretbox/navi/navi_1720.png",
"additional_asset_2": "assets/image/secretbox/title/title_1720.png",
"additional_asset_3": "assets/image/secretbox/appeal/appeal_1720.png"
},
"button_list": [
{
"secret_box_button_type": 1,
"cost_list": [
{
"id": 330,
"payable": true,
"unit_count": 1,
"type": 3001,
"item_id": null,
"amount": 5
}
],
"secret_box_name": "学园偶像祭大感谢祭BOX招募〜虹咲〜 第1弹"
},
{
"secret_box_button_type": 2,
"cost_list": [
{
"id": 333,
"payable": false,
"unit_count": 11,
"type": 3001,
"item_id": null,
"amount": 50
}
],
"secret_box_name": "学园偶像祭大感谢祭BOX招募〜虹咲〜 第1弹",
"balloon_asset": "assets/image/secretbox/balloon/balloon_31.png"
},
{
"secret_box_button_type": 16,
"cost_list": [
{
"id": 336,
"payable": false,
"unit_count": 11,
"type": 1000,
"item_id": 8,
"amount": 1
}
],
"secret_box_name": "学园偶像祭大感谢祭BOX招募〜虹咲〜 第1弹",
"balloon_asset": "assets/image/secretbox/balloon/balloon_31.png"
}
],
"secret_box_info": {
"secret_box_id": 1720,
"secret_box_type": 0,
"name": "学园偶像祭大感谢祭BOX招募〜虹咲〜 第1弹",
"description": null,
"start_date": "2023-03-05 15:00:00",
"end_date": "2037-03-31 14:59:59",
"show_end_date": "2037-03-31 14:59:59",
"add_gauge": 10,
"always_display_flag": 1,
"pon_count": 0,
"pon_upper_limit": 0
}
}
]
},
{
"member_category": 4,
"page_list": [
{
"menu_asset": "assets/image/secretbox/icon/s_ba_1721_1.png",
"page_order": 31971,
"animation_assets": {
"type": 1,
"background_asset": "assets/image/secretbox/background/bg_1721.png",
"additional_asset_1": "assets/image/secretbox/navi/navi_1721.png",
"additional_asset_2": "assets/image/secretbox/title/title_1721.png",
"additional_asset_3": "assets/image/secretbox/appeal/appeal_1721.png"
},
"button_list": [
{
"secret_box_button_type": 1,
"cost_list": [
{
"id": 330,
"payable": true,
"unit_count": 1,
"type": 3001,
"item_id": null,
"amount": 5
}
],
"secret_box_name": "学园偶像祭大感谢祭BOX招募〜Liella!〜 第1弹"
},
{
"secret_box_button_type": 2,
"cost_list": [
{
"id": 333,
"payable": false,
"unit_count": 11,
"type": 3001,
"item_id": null,
"amount": 50
}
],
"secret_box_name": "学园偶像祭大感谢祭BOX招募〜Liella!〜 第1弹",
"balloon_asset": "assets/image/secretbox/balloon/balloon_31.png"
},
{
"secret_box_button_type": 16,
"cost_list": [
{
"id": 336,
"payable": false,
"unit_count": 11,
"type": 1000,
"item_id": 8,
"amount": 1
}
],
"secret_box_name": "学园偶像祭大感谢祭BOX招募〜Liella!〜 第1弹",
"balloon_asset": "assets/image/secretbox/balloon/balloon_31.png"
}
],
"secret_box_info": {
"secret_box_id": 1721,
"secret_box_type": 0,
"name": "学园偶像祭大感谢祭BOX招募〜Liella!〜 第1弹",
"description": null,
"start_date": "2023-03-05 15:00:00",
"end_date": "2037-03-31 14:59:59",
"show_end_date": "2037-03-31 14:59:59",
"add_gauge": 10,
"always_display_flag": 1,
"pon_count": 0,
"pon_upper_limit": 0
}
}
]
}
]
}