using System.Collections.Generic; using ET; namespace GFGGame { public class RoleLimitDataManager { private static Dictionary _roleLimitDatas = new Dictionary(); public static void InitServerData(List unitLimitInfoProtos) { _roleLimitDatas.Clear(); foreach (var proto in unitLimitInfoProtos) { var data = new RoleLimitData(); data.FromMessage(proto); _roleLimitDatas.Add(proto.LimitId, data); } } public static void UpdateLimitData(UnitLimitInfoProto proto) { _roleLimitDatas.TryGetValue(proto.LimitId, out var data); if(data == null) { data = new RoleLimitData(); _roleLimitDatas.Add(proto.LimitId, data); } data.FromMessage(proto); EventAgent.DispatchEvent(ConstMessage.NOTICE_LIMIT_CHANGED, proto.LimitId); } public static RoleLimitData GetLimitData(int limitId) { _roleLimitDatas.TryGetValue(limitId, out var data); return data; } public static bool CheckPlayTimesEnough(int limitId, int times) { var data = GetLimitData(limitId); if(data == null) { return true; } return data.TotalPlayMax >= data.PlayTimes + times; } } }