using Snxxz.UI;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TableConfig;
///
/// 宝石数据
///
public class PlayerStoneData : Singleton
{
private Dictionary stoneDic = new Dictionary();
private Dictionary stoneBindDict = new Dictionary();
public static event Action OnRefreshStoneData;
GemModel m_Model;
GemModel model {
get {
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel());
}
}
public void RefreshData(HA3BC_tagMCStoneInfo vNetData)
{
for (int i = 0; i < vNetData.EquipCount; i++)
{
HA3BC_tagMCStoneInfo.tagMCStoneMsg data = vNetData.InfoList[i];
if (stoneDic.ContainsKey(data.EquipPlace))
{
stoneDic[data.EquipPlace] = data.StoneInfo;
stoneBindDict[data.EquipPlace] = data.StoneBind;
}
else
{
stoneDic.Add(data.EquipPlace, data.StoneInfo);
stoneBindDict.Add(data.EquipPlace, data.StoneBind);
}
}
if (OnRefreshStoneData != null)
{
OnRefreshStoneData();
}
model.OnUpdateRedPoint();
}
public uint[] GetStoneInfo(int index)
{
uint[] infoArray = null;
stoneDic.TryGetValue(index, out infoArray);
return infoArray;
}
public byte[] GetStoneBindInfo(int index)
{
byte[] infoArray = null;
stoneBindDict.TryGetValue(index, out infoArray);
return infoArray;
}
public Dictionary GetAllStone()
{
return stoneDic;
}
public int GetAllStoneLv()
{
int allStoneLv = 0;
var _dict = GetAllStone();
foreach (uint[] array in _dict.Values)
{
if (array == null || array.Length == 0) continue;
for (int i = 0; i < array.Length; i++)
{
if (array[i] == 0)
{
continue;
}
ItemConfig _tagChinItemModel = Config.Instance.Get((int)array[i]);
if (_tagChinItemModel == null)
{
continue;
}
allStoneLv += _tagChinItemModel.EffectValueB1;
}
}
return allStoneLv;
}
}