Added Mystery Box Support

Added the event specific Mystery Box support to the exporter. Closes #7
This commit is contained in:
Golumpa 2026-07-16 00:50:14 +01:00
parent 2b33ea63af
commit 9eae9b4a15
24 changed files with 627 additions and 19 deletions

View file

@ -15,7 +15,7 @@ decoder-only offsets.
"capture_source": "npcap",
"exporter": {
"name": "nte-history-exporter",
"version": "0.1.10"
"version": "0.1.11"
},
"banner": {
"id": "Lottery_Permanent",
@ -71,6 +71,8 @@ Current stable pool IDs:
- `Lottery_LimitedCharacter`: Limited Character Board. New limited character
banners should still use this ID while they share the same history/pity pool.
- `Arc_MiracleBox`: Arc Miracle Box.
- `Gashapon_MysteryBox`: Mystery Box. Records are single pulls and history is
not split into event rotations by the exporter.
Avoid using `banner.name`, `reward_name`, `reward_type` or `reward_rank` as primary IDs. They
are useful display fields, but may change when mapping files are updated.
@ -110,6 +112,9 @@ Arc source:
nte|gashapon|pool_group_id|timestamp_raw|timestamp_group_ordinal
```
Mystery Box uses the same Gashapon UID source. Reward quantity is preserved,
but each record represents exactly one pull and has `result_type = single_pull`.
## Example records
Monopoly:
@ -146,6 +151,24 @@ Arc:
}
```
Mystery Box:
```json
{
"uid": "2610c6e96afd64aa4a53fb9e8cebe031",
"pool_group_id": "Gashapon_MysteryBox",
"timestamp": "2026-07-08 19:09:33",
"timestamp_group_ordinal": 0,
"result_type": "single_pull",
"reward_type": "item",
"reward_id": "vehicle039",
"reward_name": "Draco",
"reward_rank": "S",
"quantity": 1,
"source_type": "mystery_box"
}
```
## CSV diagnostics
CSV exports are mainly for debugging the decoder. Tools should prefer JSON