1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
using System.Collections.Generic;
public partial class ActHeroAppearStarConfig : ConfigBase<int, ActHeroAppearStarConfig>
{
    // 升星礼包模版ID: 奖励记录索引 :配置ID
    private static Dictionary<int, Dictionary<int, int>> infoDict = new();
    // 升星礼包模版ID List<奖励记录索引>
    private static Dictionary<int, List<int>> sortDict = new();
    protected override void OnConfigParseCompleted()
    {
        if (!infoDict.TryGetValue(StarTempID, out var dict))
        {
            dict = new Dictionary<int, int>();
            infoDict[StarTempID] = dict;
        }
        dict[AwardIndex] = ID;
    }
 
    private static void LoadSortList()
    {
        if (!sortDict.IsNullOrEmpty()) return;
        foreach (var kvp in infoDict)
        {
            int starTempID = kvp.Key;
            List<int> list = new List<int>(kvp.Value.Keys);
            list.Sort();
            sortDict[starTempID] = list;
        }
    }
 
    public static List<int> GetAwardIndexSortList(int starTempID)
    {
        LoadSortList();
        sortDict.TryGetValue(starTempID, out var list);
        return list;
    }
 
    public static Dictionary<int, int> GetAwardIndexDict(int starTempID)
    {
        infoDict.TryGetValue(starTempID, out var dict);
        return dict;
    }
 
    public static int GetID(int starTempID, int awardIndex)
    {
        var dict = GetAwardIndexDict(starTempID);
        if (dict == null) return 0;
 
        dict.TryGetValue(awardIndex, out var id);
        return id;
    }
 
    public static ActHeroAppearStarConfig GetConfig(int starTempID, int awardIndex)
    {
        int id = GetID(starTempID, awardIndex);
        return Get(id);
    }
 
}