1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- using System.Collections.Generic;
- using ET;
- namespace GFGGame
- {
- public class RoleLimitDataManager
- {
- private static Dictionary<int, RoleLimitData> _roleLimitDatas = new Dictionary<int, RoleLimitData>();
- public static void InitServerData(List<UnitLimitInfoProto> unitLimitInfoProtos)
- {
- _roleLimitDatas.Clear();
- foreach (var proto in unitLimitInfoProtos)
- {
- var data = new RoleLimitData();
- data.FromMessage(proto);
- _roleLimitDatas.Add(proto.LimitId, data);
- EventAgent.DispatchEvent(ConstMessage.NOTICE_LIMIT_CHANGED, proto.LimitId);
- }
- }
- 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;
- }
- }
- }
|