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();
|
}
|
}
|
}
|
}
|
|