using System.Collections.Generic; public partial class FamilyAtkDefBatTreasureConfig : ConfigBase { // 双层字典:AwardColor(品质) -> LibType(胜负库) -> List private static Dictionary>> s_TreasureDict; protected override void OnConfigParseCompleted() { if (s_TreasureDict == null) s_TreasureDict = new Dictionary>>(); if (!s_TreasureDict.TryGetValue(AwardColor, out var libDict)) { libDict = new Dictionary>(); s_TreasureDict[AwardColor] = libDict; } if (!libDict.TryGetValue(LibType, out var list)) { list = new List(); libDict[LibType] = list; } list.Add(this); } /// 按品质和库类型获取宝藏奖励配置列表(已按 SortOrder→AwardID 排序) /// 奖励品质(1-普通;2-稀有;3-珍稀) /// 胜负库类型(1-胜者库;2-败者库) public static List GetItemsByQualityAndLibType(int quality, int libType) { if (s_TreasureDict != null && s_TreasureDict.TryGetValue(quality, out var libDict) && libDict.TryGetValue(libType, out var list)) { // 排序:SortOrder 小的靠前,SortOrder 相同时 AwardID 小的靠前 list.Sort((a, b) => { int cmp = a.SortOrder.CompareTo(b.SortOrder); if (cmp != 0) return cmp; return a.AwardID.CompareTo(b.AwardID); }); return list; } return null; } }