b5e33c15f6ae76c581f684ac09c40d361b29cbc3
MyPageTask.Parse (Wizard/MyPageTask.cs:155-163) does `_userItemDict.Clear();` the moment `user_item_list` is present in the response body — not when it's non-empty — then re-populates from the wire. Our /mypage/index was emitting [] by default (the field initializer on the DTO), which wiped the inventory that /load/index had just populated. Downstream consequence: the client's PackChildGachaInfo.CostGoodsCount reads from _userItemDict, so a wiped dict makes every ticket-cost pack report CostGoodsCount=0, PackConfig.EnableBuyPack returns false, and is_hide=1 packs (including the tutorial legendary starter 99047) disappear from the rotation pack list — even though the gift bundle just granted the ticket and the DB row exists. The tutorial then auto-selects whatever non-tutorial pack happens to be at index 0 of the filtered list, the user can't afford it, and the flow is stuck. Fix: - MyPageController.Index now sets UserItemList from viewer.Items (already loaded by GetViewerByShortUdid's home-screen graph). - DTO docstring rewritten to call out the presence-sensitive semantics and the load-bearing path through PackConfig.EnableBuyPack, so the next developer doesn't get the "empty is fine" hint the old comment implied. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Description
The SV Simulator server code, including the DCG Engine, SVSim content, and an entrypoint for the official game client.
Languages
C#
100%