using System.Collections.Generic; using System.Linq; public partial class GubaoResonanceAttrConfig : ConfigBase { static Dictionary> suiteCfgDict = new Dictionary>(); protected override void OnConfigParseCompleted() { if (!suiteCfgDict.ContainsKey(ResonanceID)) { suiteCfgDict[ResonanceID] = new Dictionary(); } suiteCfgDict[ResonanceID][ResonanceStar] = this; } public static GubaoResonanceAttrConfig GetConfig(int ResonanceID, int ResonanceStar) { if (suiteCfgDict.ContainsKey(ResonanceID)) { if (suiteCfgDict[ResonanceID].ContainsKey(ResonanceStar)) { return suiteCfgDict[ResonanceID][ResonanceStar]; } } return null; } // 获取当前激活的星级,-1 代表没有激活 //_star 是套装里的最小星级 public static int GetActiveStar(int ResonanceID, int _star) { int activeStar = -1; if (suiteCfgDict.ContainsKey(ResonanceID)) { // 找不到当前星级,找最接近的星级 var keys = suiteCfgDict[ResonanceID].Keys.ToList(); keys.Sort(); foreach (var star in keys) { if (_star >= star) { activeStar = star; } } } return activeStar; } // 获取临近的星级,先取下一个激活的星级, 最大的就取前一星 public static int GetNearStar(int ResonanceID, int _Star) { var keys = suiteCfgDict[ResonanceID].Keys.ToList(); keys.Sort(); foreach (var star in keys) { if (_Star < star) { return star; } } return keys[keys.Count - 2]; } public static List GetStarList(int ResonanceID) { var keys = suiteCfgDict[ResonanceID].Keys.ToList(); keys.Sort(); return keys; } }