using System.Collections.Generic; using cfg.BuffCfg; using Framework; namespace Gameplay.Buff { public class GroupBuffManager { private static GroupBuffManager _instance; public static GroupBuffManager instance { get { if (_instance == null) { _instance = new GroupBuffManager(); } return _instance; } } private Dictionary _groupMap; private GroupBuffManager() { _groupMap = new Dictionary(); var allBuffs = TableManager.Instance.Tables.BuffConfig.DataList; foreach (var buff in allBuffs) { var groupId = buff.GroupId; if (groupId == 0) { continue; } if (_groupMap.TryGetValue(groupId, out var cache)) { cache.AddBuff(buff); } else { cache = new GroupBuffCache(); cache.groupId = groupId; cache.AddBuff(buff); _groupMap.Add(groupId, cache); } } } public DataBuff SearchBuff(int groupId, int level) { if (_groupMap.TryGetValue(groupId, out var cache)) { return cache.SearchBuff(level); } return null; } /// /// 清空数据 /// 理论上不需要调用 /// public void Dispose() { _groupMap.Clear(); _instance = null; } } }