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(ItemInfoProto itemInfoProto) { var itemId = itemInfoProto.ConfigId; //游戏初始化禁止使用ItemCfg if (itemInfoProto.SubType == 0) { if (_headDatas.IndexOf(itemId) < 0) { _headDatas.Add(itemId); } } else if (itemInfoProto.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) { int subType = ItemDataManager.GetItemSubType(itemId); if (subType == 0) { if (_newHeadDatas.IndexOf(itemId) < 0) _newHeadDatas.Add(itemId); } else if (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 -1; if (_newHeadDatas.IndexOf(b) >= 0 && _newHeadDatas.IndexOf(a) < 0) return 1; if (a == RoleDataManager.headId && b != RoleDataManager.headId) return -1; if (b == RoleDataManager.headId && a != RoleDataManager.headId) return 1; return b - a; }); } public void SortHeadBorderDatas() { _headBorderDatas.Sort((int a, int b) => { if (_newHeadBorderDatas.IndexOf(a) >= 0 && _newHeadBorderDatas.IndexOf(b) < 0) return -1; if (_newHeadBorderDatas.IndexOf(b) >= 0 && _newHeadBorderDatas.IndexOf(a) < 0) return 1; if (a == RoleDataManager.headBorderId && b != RoleDataManager.headBorderId) return -1; if (b == RoleDataManager.headBorderId && a != RoleDataManager.headBorderId) return 1; return b - a; }); } /// /// 套装收集进度 /// /// public int GetSuitGuideProgress() { DressUpMenuSuitDataManager.GetTotalProgress(out int suitHaveCount, out int suitTotalCount); int value = FieldGuideView.ProgressCalculate(suitHaveCount, suitTotalCount); return value; } /// /// 卡牌收集进度 /// /// public int GetCardGuideProgress() { CardDataManager.GetTotalProgress(out int haveCount, out int totalCount); int value = FieldGuideView.ProgressCalculate(haveCount, totalCount); return value; } public string GetLeagueName() { LeagueData leagueData = LeagueDataManager.Instance.LeagueData; if (leagueData == null) { return "暂未加入雅集"; } else { return leagueData.Name; } } public long GetRoleID() { return RoleDataManager.roleId; } public void UpdateHeadWithLv(GComponent component, int headId, int roleBorderId, int lv) { UI_ComHeadWithLv comHeadWithLv = UI_ComHeadWithLv.Proxy(component); UpdateHead(comHeadWithLv.m_comHead.target, headId, roleBorderId); UpdateLv(comHeadWithLv.m_comLv.target, lv); UI_ComHeadWithLv.ProxyEnd(); } public void UpdateHeadWithLv1(GComponent component, int headId, int roleBorderId, int lv) { UI_ComHeadWithLv1 comHeadWithLv = UI_ComHeadWithLv1.Proxy(component); UpdateHead(comHeadWithLv.m_comHead.target, headId, roleBorderId); comHeadWithLv.m_txtLv.text = lv > 0 ? lv.ToString() : "--"; UI_ComHeadWithLv1.ProxyEnd(); } public void UpdateHead(GComponent component, int headId, int roleBorderId) { ItemCfg headCfg = ItemCfgArray.Instance.GetCfg(headId == 0 ? ConstItemID.HEADID : headId); ItemCfg headBorderCfg = ItemCfgArray.Instance.GetCfg(roleBorderId == 0 ? ConstItemID.HEADBORDERID : roleBorderId); UI_ComHead comHead = UI_ComHead.Proxy(component); if(headBorderCfg.res.Length == 0) { if(comHead.m_c2 != null) { comHead.m_c2.selectedIndex = 0; } } else { if (comHead.m_c2 != null) { comHead.m_c2.selectedIndex = 1; } comHead.m_loaBorder.url = ResPathUtil.GetHeadBorderPath(headBorderCfg.res); } comHead.m_comHead.m_loaIcon.url = ResPathUtil.GetHeadPath(headCfg.res); UI_ComHead.ProxyEnd(); } public void UpdateArenaNpcHead(GComponent component, string res) { UI_ComHead comHead = UI_ComHead.Proxy(component); if (string.IsNullOrEmpty(res)) { comHead.m_comHead.m_loaIcon.url = res; } else { comHead.m_comHead.m_loaIcon.url = ResPathUtil.GetHeadPath(res); } UI_ComHead.ProxyEnd(); } public void UpdateNpcHead(GComponent component, string res) { UI_ComHead comHead = UI_ComHead.Proxy(component); if (string.IsNullOrEmpty(res)) { comHead.m_comHead.m_loaIcon.url = res; } else { comHead.m_comHead.m_loaIcon.url = ResPathUtil.GetNpcHeadPath(res); } UI_ComHead.ProxyEnd(); } public void UpdateLv(GComponent component, int lv) { UI_ComHeadLv comLv = UI_ComHeadLv.Proxy(component); comLv.m_txtLvl.text = lv > 0 ? lv.ToString() : "--"; UI_ComHeadLv.ProxyEnd(); } public static string[] GetSuitPosItems() { MonthlyCardPrivilegeCfg privilegeCfg = MonthlyCardPrivilegeCfgArray.Instance.GetCfg(MonthCardPrivilegeType.Privilege4); string[] posItems = new string[GlobalCfgArray.globalCfg.freeAlbumNum + privilegeCfg.value1Arr[0] + privilegeCfg.value2Arr[0]]; for (int i = 0; i < posItems.Length; i++) { posItems[i] = ""; if (GetPosType(i) == 0) { posItems[i] = ""; } else if (GetPosType(i) == MonthCardType.Gold && !RoleDataManager.CheckIsMonthCardOpenByType(MonthCardType.Gold)) { posItems[i] = "红包卡开启"; } else if (GetPosType(i) == MonthCardType.BlackGold && !RoleDataManager.CheckIsMonthCardOpenByType(MonthCardType.BlackGold)) { posItems[i] = "福气卡开启"; } } return posItems; } //获取指定位置月卡类型 public static int GetPosType(int pos) { if (pos < GlobalCfgArray.globalCfg.freeAlbumNum) return 0; MonthlyCardPrivilegeCfg privilegeCfg = MonthlyCardPrivilegeCfgArray.Instance.GetCfg(MonthCardPrivilegeType.Privilege4); if (pos < GlobalCfgArray.globalCfg.freeAlbumNum + privilegeCfg.value1Arr[0]) return MonthCardType.Gold; if (pos >= GlobalCfgArray.globalCfg.freeAlbumNum + privilegeCfg.value1Arr[0]) return MonthCardType.BlackGold; return 0; } } }