| using System;  | 
| using System.Collections;  | 
| using System.Collections.Generic;  | 
| using UnityEngine;  | 
| namespace vnxbqy.UI  | 
| {  | 
|       | 
|     public class DungeonUseBuffModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk  | 
|     {  | 
|         Dictionary<int, List<int>> m_UseBuffMaps = new Dictionary<int, List<int>>();  | 
|         Dictionary<int, Dictionary<int, uint>> m_UseBuffTimes = new Dictionary<int, Dictionary<int, uint>>();  | 
|   | 
|         public bool moneyCostRemind { get; set; }  | 
|   | 
|         public event Action onUseBuffTimeRefresh;  | 
|         public override void Init()  | 
|         {  | 
|             ParseConfig();  | 
|             StageLoad.Instance.onStageLoadFinish += OnStageLoadFinish;  | 
|         }  | 
|   | 
|         public void OnBeforePlayerDataInitialize()  | 
|         {  | 
|             m_UseBuffTimes.Clear();  | 
|         }  | 
|   | 
|         public void OnPlayerLoginOk()  | 
|         {  | 
|         }  | 
|   | 
|         public override void UnInit()  | 
|         {  | 
|             StageLoad.Instance.onStageLoadFinish -= OnStageLoadFinish;  | 
|         }  | 
|   | 
|         private void OnStageLoadFinish()  | 
|         {  | 
|             moneyCostRemind = true;  | 
|         }  | 
|   | 
|         void ParseConfig()  | 
|         {  | 
|             var configs = DungeonUseBuffConfig.GetValues();  | 
|             foreach (var config in configs)  | 
|             {  | 
|                 List<int> ids = null;  | 
|                 if (!m_UseBuffMaps.TryGetValue(config.DataMapId, out ids))  | 
|                 {  | 
|                     ids = new List<int>();  | 
|                     m_UseBuffMaps.Add(config.DataMapId, ids);  | 
|                 }  | 
|                 ids.Add(config.ID);  | 
|             }  | 
|         }  | 
|   | 
|         public bool IsDungeonUseBuff(int mapId)  | 
|         {  | 
|             return m_UseBuffMaps.ContainsKey(mapId);  | 
|         }  | 
|   | 
|         public List<int> GetDungeonUseBuffs(int mapId)  | 
|         {  | 
|             return m_UseBuffMaps.ContainsKey(mapId) ? m_UseBuffMaps[mapId] : null;  | 
|         }  | 
|   | 
|         public uint GetUseBuffTime(int mapId, int moneyCnt)  | 
|         {  | 
|             if (m_UseBuffTimes.ContainsKey(mapId)  | 
|                 && m_UseBuffTimes[mapId].ContainsKey(moneyCnt))  | 
|             {  | 
|                 return m_UseBuffTimes[mapId][moneyCnt];  | 
|             }  | 
|             return 0;  | 
|         }  | 
|   | 
|         public void ReceivePackage(HB215_tagMCFBBuyBuffInfo package)  | 
|         {  | 
|             for (int i = 0; i < package.Cnt; i++)  | 
|             {  | 
|                 var data = package.InfoList[i];  | 
|                 Dictionary<int, uint> dict = null;  | 
|                 if (!m_UseBuffTimes.TryGetValue((int)data.MapID, out dict))  | 
|                 {  | 
|                     dict = new Dictionary<int, uint>();  | 
|                     m_UseBuffTimes.Add((int)data.MapID, dict);  | 
|                 }  | 
|                 dict[data.MoneyCnt] = data.BuyTime;  | 
|             }  | 
|   | 
|             if (onUseBuffTimeRefresh != null)  | 
|             {  | 
|                 onUseBuffTimeRefresh();  | 
|             }  | 
|         }  | 
|     }  | 
| }  | 
|   |