using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace vnxbqy.UI { public class DungeonUseBuffModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk { Dictionary> m_UseBuffMaps = new Dictionary>(); Dictionary> m_UseBuffTimes = new Dictionary>(); 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 ids = null; if (!m_UseBuffMaps.TryGetValue(config.DataMapId, out ids)) { ids = new List(); m_UseBuffMaps.Add(config.DataMapId, ids); } ids.Add(config.ID); } } public bool IsDungeonUseBuff(int mapId) { return m_UseBuffMaps.ContainsKey(mapId); } public List 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 dict = null; if (!m_UseBuffTimes.TryGetValue((int)data.MapID, out dict)) { dict = new Dictionary(); m_UseBuffTimes.Add((int)data.MapID, dict); } dict[data.MoneyCnt] = data.BuyTime; } if (onUseBuffTimeRefresh != null) { onUseBuffTimeRefresh(); } } } }