using FairyGUI; using ET; using System.Collections.Generic; using System; namespace GFGGame { public class RoleInfoManager : SingletonBase { public void Clear() { _headDatas.Clear(); _headBorderDatas.Clear(); } private List _headDatas = new List(); public List headDatas { get { SortHeadDatas(); return _headDatas; } } private List _headBorderDatas = new List(); public List headBorderDatas { get { SortHeadBorderDatas(); 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(); private List _newHeadBorderDatas = new List(); 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); } } private void SortHeadDatas() { _headDatas.Sort((int a, int b) => { if (a == RoleDataManager.headId && b != RoleDataManager.headId) return a - b; if (a != RoleDataManager.headId && b == RoleDataManager.headId) return b - a; if (_newHeadDatas.IndexOf(a) >= 0 && _newHeadDatas.IndexOf(b) < 0) return a - b; if (_newHeadDatas.IndexOf(a) < 0 && _newHeadDatas.IndexOf(b) >= 0) return b - a; return b - a; }); } private void SortHeadBorderDatas() { _headBorderDatas.Sort((int a, int 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; } } }