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 && _newHeadDatas.IndexOf(b) < 0) return a - b; if (_newHeadDatas.IndexOf(a) < 0 && _newHeadDatas.IndexOf(b) >= 0) return b - a; if (a == RoleDataManager.headId && b != RoleDataManager.headId) return b - a; if (a != RoleDataManager.headId && b == RoleDataManager.headId) return a - b; return b - a; }); } public void SortHeadBorderDatas() { _headBorderDatas.Sort((int a, int b) => { if (_newHeadBorderDatas.IndexOf(a) >= 0 && _newHeadBorderDatas.IndexOf(b) < 0) return a - b; if (_newHeadBorderDatas.IndexOf(a) < 0 && _newHeadBorderDatas.IndexOf(b) >= 0) return b - a; if (a == RoleDataManager.headBorderId && b != RoleDataManager.headBorderId) return b - a; if (a != RoleDataManager.headBorderId && b == RoleDataManager.headBorderId) return a - b; 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 * haveCount / totalCount); 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_loaIcon.url = ResPathUtil.GetHeadPath(headCfg.res); comHead.m_loaBorder.url = ResPathUtil.GetHeadBorderPath(headBorderCfg.res); UI_ComHead.ProxyEnd(); } } }