| 
					
				 | 
			
			
				@@ -1,5 +1,5 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using UI.RoleInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-using System.Text.RegularExpressions; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using System.Collections.Generic; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using FairyGUI; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using UI.CommonGame; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -8,6 +8,8 @@ namespace GFGGame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public class ChangeHeadView : BaseWindow 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private UI_ChangeHead _ui; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private List<ItemCfg> _headCfgs = new List<ItemCfg>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private List<ItemCfg> _headBorderCfgs = new List<ItemCfg>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private int _selectHeadId = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private int _selectHeadBorderId = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -47,6 +49,10 @@ namespace GFGGame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             base.OnShown(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             RoleInfoManager.Instance.SortHeadDatas(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             RoleInfoManager.Instance.SortHeadBorderDatas(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _headCfgs.AddRange(ItemCfgArray.Instance.GetCfgsByitemTypeAndsubType(ConstItemType.HEAD, ConstItemSubType.ROLE_HEAD)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _headCfgs = SoreItemCfgDatas(_headCfgs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _headBorderCfgs.AddRange(ItemCfgArray.Instance.GetCfgsByitemTypeAndsubType(ConstItemType.HEAD, ConstItemSubType.ROLE_HEAD)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _headBorderCfgs = SoreItemCfgDatas(_headBorderCfgs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             OnTabChange(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // _ui.m_list.selectedIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // _ui.m_listBorder.selectedIndex = 0; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -56,6 +62,8 @@ namespace GFGGame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             base.OnHide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             _ui.m_c1.selectedIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _headCfgs.Clear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _headBorderCfgs.Clear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private async void OnBtnSureClick() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -79,11 +87,11 @@ namespace GFGGame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private void RenderListItem(int index, GObject obj) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            int headId = RoleInfoManager.Instance.headDatas[index]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ItemCfg cfg = ItemCfgArray.Instance.GetCfg(headId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int headId = _headCfgs[index].id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             UI_ListHeadItem item = UI_ListHeadItem.Proxy(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            item.m_loaIcon.url = ResPathUtil.GetHeadPath(cfg.res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.m_loaIcon.url = ResPathUtil.GetHeadPath(_headCfgs[index].res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.m_imgNew.visible = RoleInfoManager.Instance.isNewHead(headId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.m_imgUnGet.visible = ItemDataManager.GetItemNum(headId) <= 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (RoleInfoManager.Instance.isNewHead(headId)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 ItemProxy.ReqSetItemRead(headId).Coroutine(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -98,12 +106,13 @@ namespace GFGGame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private void RenderListBorderItem(int index, GObject obj) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ItemCfg headCfg = ItemCfgArray.Instance.GetCfg(RoleDataManager.headId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            int headBorderId = RoleInfoManager.Instance.headBorderDatas[index]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ItemCfg borderCfg = ItemCfgArray.Instance.GetCfg(headBorderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ItemCfg borderCfg = _headBorderCfgs[index]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int headBorderId = borderCfg.id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             UI_ListHeadBorderItem item = UI_ListHeadBorderItem.Proxy(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.m_loaIcon.url = ResPathUtil.GetHeadPath(headCfg.res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.m_loaBorder.url = ResPathUtil.GetHeadBorderPath(borderCfg.res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.m_imgNew.visible = RoleInfoManager.Instance.isNewHeadBorder(headBorderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.m_imgUnGet.visible = ItemDataManager.GetItemNum(headBorderId) <= 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (RoleInfoManager.Instance.isNewHeadBorder(headBorderId)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 ItemProxy.ReqSetItemRead(headBorderId).Coroutine(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -120,6 +129,11 @@ namespace GFGGame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             GObject obj = context.data as GObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             _selectHeadId = (int)obj.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (ItemDataManager.GetItemNum(_selectHeadId) <= 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                PromptController.Instance.ShowFloatTextPrompt("暂未获得"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             UpdateView(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -127,6 +141,11 @@ namespace GFGGame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             GObject obj = context.data as GObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             _selectHeadBorderId = (int)obj.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (ItemDataManager.GetItemNum(_selectHeadBorderId) <= 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                PromptController.Instance.ShowFloatTextPrompt("暂未获得"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             UpdateView(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -136,11 +155,11 @@ namespace GFGGame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             _selectHeadBorderId = RoleDataManager.headBorderId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (_ui.m_c1.selectedIndex == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _ui.m_list.numItems = RoleInfoManager.Instance.headDatas.Count; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _ui.m_list.numItems = _headCfgs.Count; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _ui.m_listBorder.numItems = RoleInfoManager.Instance.headBorderDatas.Count; ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _ui.m_listBorder.numItems = _headBorderCfgs.Count; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             UpdateView(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -161,5 +180,18 @@ namespace GFGGame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 _ui.m_txtDesc.text = headBorderCfg.desc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private List<ItemCfg> SoreItemCfgDatas(List<ItemCfg> list) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            list.Sort((ItemCfg a, ItemCfg b) => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                long hasA = ItemDataManager.GetItemNum(a.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                long hasB = ItemDataManager.GetItemNum(a.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (hasA > 0 && hasB <= 0) return 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (hasB > 0 && hasA <= 0) return -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return b.id - a.id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |