| | |
| | | { |
| | | private Dictionary<int, FBInfo> fbInfoDict = new Dictionary<int, FBInfo>(); |
| | | public event Action<int> UpdateFBInfoListEvent;//int mapID |
| | | public event Action<int, bool, bool, bool> UpdateFBInfoChangeEvent; |
| | | Dictionary<int, DungeonRecord> dungeonRecords = new Dictionary<int, DungeonRecord>(); |
| | | public event Action updateDungeonBuyCnt; |
| | | |
| | |
| | | public bool TryGetFBInfoByMapID(int mapID, out FBInfo info) |
| | | { |
| | | return fbInfoDict.TryGetValue(mapID, out info); |
| | | } |
| | | |
| | | //获得副本的最大次数和剩余可用次数 |
| | | |
| | | //maxCount 最大次数:可能会因各个副本展示规则不同而不同 |
| | | // 默认为从功能操作归属出发购买次数属于每日上限次数 每日次数 + 可最大购买次数 + 特权次数 |
| | | //useCount 剩余可用次数:今日总的可用次数 - 今日已进入次数 |
| | | // 今日总的可用次数:每日次数 + 可购总买次数 + 广告次数 + 道具次数 + 特权次数 |
| | | // 默认为从功能操作归属出发购买次数属于可用次数内 |
| | | public bool TryGetDungeonCount(int dataMapID, out int maxCount, out int useCount) |
| | | { |
| | | maxCount = 0; |
| | | useCount = 0; |
| | | if (!TryGetFBInfoByMapID(dataMapID, out FBInfo fbInfo)) |
| | | return false; |
| | | |
| | | DungeonOpenTimeConfig dungeonOpenTimeConfig = DungeonOpenTimeConfig.Get(dataMapID); |
| | | if (dungeonOpenTimeConfig == null) |
| | | { |
| | | return false; |
| | | } |
| | | //总的可用次数:每日次数 + 可购总买次数 + 广告次数 + 道具次数 + 特权次数 |
| | | int totalCount = dungeonOpenTimeConfig.DayTimes + dungeonOpenTimeConfig.PayCntMax + InvestModel.Instance.GetAddFBBuyCount(dataMapID) + fbInfo.ADAddCnt + fbInfo.ItemAddCnt; |
| | | maxCount = dungeonOpenTimeConfig.DayTimes + dungeonOpenTimeConfig.PayCntMax + InvestModel.Instance.GetAddFBBuyCount(dataMapID); |
| | | useCount = totalCount - fbInfo.EnterCnt; |
| | | |
| | | return true; |
| | | } |
| | | |
| | | public void UpdateFBInfoList(HA320_tagSCFBInfoList vNetData) |
| | |
| | | fbInfoDict[mapID].PassGrade = item.PassGrade; |
| | | |
| | | UpdateFBInfoListEvent?.Invoke(mapID); |
| | | UpdateFBInfoChangeEvent?.Invoke(mapID, isADAddCntChange, isBuyAddCntChange, isItemAddCntChange); |
| | | } |
| | | } |
| | | |