using FairyGUI; using ET; using System.Collections.Generic; using System; using UI.CommonGame; namespace GFGGame { public class RoleInfoManager : SingletonBase { public void Clear() { _headDatas.Clear(); _headBorderDatas.Clear(); _newHeadDatas.Clear(); _newHeadBorderDatas.Clear(); } private List _headDatas = new List(); public List headDatas { get { return _headDatas; } } private List _headBorderDatas = new List(); public List headBorderDatas { get { return _headBorderDatas; } } public void Add(int itemId) { ItemCfg cfg = ItemCfgArray.Instance.GetCfg(itemId); if (cfg.subType == 0) { if (_headDatas.IndexOf(itemId) < 0) { _headDatas.Add(itemId); } } else if (cfg.subType == 1) { if (_headBorderDatas.IndexOf(itemId) < 0) { _headBorderDatas.Add(itemId); } } } public void Remove(int itemId) { ItemCfg cfg = ItemCfgArray.Instance.GetCfg(itemId); if (cfg.subType == 0) { if (_headDatas.IndexOf(itemId) >= 0) _headDatas.Remove(itemId); } else if (cfg.subType == 1) { if (_headBorderDatas.IndexOf(itemId) >= 0) _headBorderDatas.Remove(itemId); } } private List _newHeadDatas = new List(); public List newHeadDatas { get { return _newHeadDatas; } } private List _newHeadBorderDatas = new List(); public List newHeadBorderDatas { get { return _newHeadBorderDatas; } } public void AddNew(int itemId) { ItemCfg cfg = ItemCfgArray.Instance.GetCfg(itemId); if (cfg.subType == 0) { if (_newHeadDatas.IndexOf(itemId) < 0) _newHeadDatas.Add(itemId); } else if (cfg.subType == 1) { if (_newHeadBorderDatas.IndexOf(itemId) < 0) _newHeadBorderDatas.Add(itemId); } } public void RemoveNew(int itemId) { ItemCfg cfg = ItemCfgArray.Instance.GetCfg(itemId); if (cfg.subType == 0) { if (_newHeadDatas.IndexOf(itemId) >= 0) _newHeadDatas.Remove(itemId); } else if (cfg.subType == 1) { if (_newHeadBorderDatas.IndexOf(itemId) >= 0) _newHeadBorderDatas.Remove(itemId); } } public bool isNewHead(int itemId) { return _newHeadDatas.IndexOf(itemId) >= 0; } public bool isNewHeadBorder(int itemId) { return _newHeadBorderDatas.IndexOf(itemId) >= 0; } public void SortHeadDatas() { _headDatas.Sort((int a, int b) => { if (_newHeadDatas.IndexOf(a) >= 0) return -1; if (_newHeadDatas.IndexOf(b) >= 0) return 1; if (a == RoleDataManager.headId) return -1; if (b == RoleDataManager.headId) return 1; return b - a; }); } public void SortHeadBorderDatas() { _headBorderDatas.Sort((int a, int b) => { if (_newHeadBorderDatas.IndexOf(a) >= 0) return -1; if (_newHeadBorderDatas.IndexOf(b) >= 0) return 1; if (a == RoleDataManager.headBorderId) return -1; if (b == RoleDataManager.headBorderId) return 1; return b - a; }); } public decimal GetGuideProgress() { int suitHaveCount = 0; int suitTotalCount = 1; DressUpMenuSuitDataManager.GetTotalProgress(out suitHaveCount, out suitTotalCount); // int chapterItemHaveCount = 0; // int chapterItemTotalCount = 1; // InstanceZonesDataManager.GetTotalProgress(out chapterItemHaveCount, out chapterItemTotalCount); // int travelHaveCount = 0; // int travelTotalCount = 1; // TravelDataManager.Instance.GetTotalTravelProgress(out travelHaveCount, out travelTotalCount); // int haveCount = suitHaveCount + chapterItemHaveCount + travelHaveCount; // int totalCount = suitTotalCount + chapterItemTotalCount + travelTotalCount; decimal value = Math.Floor((decimal)100 * suitHaveCount / suitTotalCount); return value; } public void UpdateHead(GComponent component, int roleId, int roleBorderId) { ItemCfg headCfg = ItemCfgArray.Instance.GetCfg(roleId == 0 ? ConstItemID.HEADID : roleId); ItemCfg headBorderCfg = ItemCfgArray.Instance.GetCfg(roleBorderId == 0 ? ConstItemID.HEADBORDERID : roleBorderId); UI_ComHead comHead = UI_ComHead.Proxy(component); comHead.m_comHead.m_loaIcon.url = ResPathUtil.GetHeadPath(headCfg.res); comHead.m_loaBorder.url = ResPathUtil.GetHeadBorderPath(headBorderCfg.res); UI_ComHead.ProxyEnd(); } } }