浏览代码

添加服装图鉴的首次进入加载界面

leiyasi 1 年之前
父节点
当前提交
ec49ef8e74

+ 67 - 0
GameClient/Assets/Game/HotUpdate/Data/DressUpMenuItemDataManager.cs

@@ -729,6 +729,73 @@ namespace GFGGame
             return result;
         }
 
+        public static IEnumerator GetAllDressUpGuideIdListBySubTypeAsync(Action<List<int>> onComplete)
+        {
+            List<ItemCfg> itemCfgs = new List<ItemCfg>();
+            List<int> result = new List<int>();
+
+            // 除饰品外的散件
+            for (int i = 0; i < dressUpGuideSubType.Length; i++)
+            {
+                itemCfgs.AddRange(ItemCfgArray.Instance.GetCfgsByitemTypeAndsubType(ConstItemType.DRESS_UP, dressUpGuideSubType[i]));
+                yield return new WaitForEndOfFrame();
+            }
+
+            // 饰品
+            for (int i = 0; i < dressUpGuideAccessoriesType.Length; i++)
+            {
+                itemCfgs.AddRange(ItemCfgArray.Instance.GetCfgsByitemTypeAndsubType(ConstItemType.DRESS_UP, dressUpGuideAccessoriesType[i]));
+                yield return new WaitForEndOfFrame();
+            }
+
+            // 特殊
+            ItemTypeCfg[] itemTypeCfg = ItemTypeCfgArray.Instance.dataArray;
+            for (int i = 0; i < itemTypeCfg.Length; i++)
+            {
+                if (itemTypeCfg[i].type > ConstDressUpItemType.TE_SHU)
+                {
+                    itemCfgs.AddRange(ItemCfgArray.Instance.GetCfgsByitemTypeAndsubType(ConstItemType.DRESS_UP, itemTypeCfg[i].type));
+                    yield return new WaitForEndOfFrame();
+                }
+            }
+
+
+            itemCfgs.Sort((a, b) =>
+            {
+                bool haveA = CheckHasItem(a.id);
+                bool haveB = CheckHasItem(b.id);
+
+                if (haveB && !haveA)
+                {
+                    return 1;
+                }
+                else if (!haveB && haveA)
+                {
+                    return -1;
+                }
+
+                if (a.rarity != b.rarity)
+                {
+                    return a.rarity > b.rarity ? -1 : 1;
+                }
+
+                return a.res.CompareTo(b.res);
+
+            });
+
+
+
+            for (int i = 0; i < itemCfgs.Count; i++)
+            {
+                if (itemCfgs[i].isHide <= 0)
+                {
+                    result.Add(itemCfgs[i].id);
+                }
+            }
+
+            onComplete?.Invoke(result);
+        }
+
         public static void SortDressUpGuideIdList(List<int> list)
         {
             list.Sort((a, b) =>

+ 27 - 2
GameClient/Assets/Game/HotUpdate/Views/FieldGuide/DressUpGuideView.cs

@@ -15,6 +15,7 @@ namespace GFGGame
         private UI_DressUpGuideUI _ui;
         private List<int> _itemIdList;
         private bool _startInAnim;
+        private bool first = true;
 
         // 上次点击单选按钮的index
         private struct LastClickIndex
@@ -79,8 +80,16 @@ namespace GFGGame
             _ui.m_c1.selectedIndex = 0;
             _ui.m_listType1.scrollPane.SetPercX(0,false);
 
-            UpdateItemIdListByType1(0);
-            UpdateItemListUI();
+            if (first)
+            {
+                first = false;
+                FirstLoad();
+            }
+            else
+            {
+                UpdateItemIdListByType1(0);
+                UpdateItemListUI();
+            }
 
             if (_startInAnim)
             {
@@ -97,6 +106,22 @@ namespace GFGGame
             DressUpMenuItemDataManager.Clear();
         }
 
+        private void FirstLoad()
+        {
+            _lastClickIndex.typeIndex = 1;
+            _lastClickIndex.index = 0;
+            ViewManager.Show<ModalStatusView>("加载中...");
+            Timers.inst.StartCoroutine(DressUpMenuItemDataManager.GetAllDressUpGuideIdListBySubTypeAsync(FirstLoadCompleteAction));
+        }
+
+        private void FirstLoadCompleteAction(List<int> l)
+        {
+            ViewManager.Hide<ModalStatusView>();
+            //_itemIdList = DressUpMenuItemDataManager.GetAllDressUpGuideIdListBySubType(0);
+            _itemIdList = l;
+            UpdateItemListUI();
+        }
+
         /// <summary>
         /// 一级菜单的点击
         /// </summary>