Browse Source

添加图鉴新增功能逻辑

leiyasi 1 year ago
parent
commit
157677784b
68 changed files with 2514 additions and 317 deletions
  1. 4 1
      GameClient/Assets/Game/HotUpdate/Constant/ConstFieldGuideId.cs
  2. 78 6
      GameClient/Assets/Game/HotUpdate/Data/CardDataManager.cs
  3. 155 0
      GameClient/Assets/Game/HotUpdate/Data/DressUpMenuItemDataManager.cs
  4. 6 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Card/UI_CardSkillUI.cs
  5. 6 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Card/UI_ComFosterBottom.cs
  6. 3 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Card/UI_ComFosterTop.cs
  7. 3 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Card/UI_ListSkillItem.cs
  8. 3 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/CommonGame/UI_ComTipsBase.cs
  9. 71 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_BonusBox.cs
  10. 1 1
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_BonusBox.cs.meta
  11. 71 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_Button6.cs
  12. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_Button6.cs.meta
  13. 77 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_CardGuideComDodgeStar.cs
  14. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_CardGuideComDodgeStar.cs.meta
  15. 84 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_CardGuideUI.cs
  16. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_CardGuideUI.cs.meta
  17. 11 14
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ComCardMask.cs
  18. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ComCardMask.cs.meta
  19. 3 3
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_CompGuideItem.cs
  20. 13 12
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_CompSuitItem.cs
  21. 99 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_DressUpGuideUI.cs
  22. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_DressUpGuideUI.cs.meta
  23. 0 4
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_FieldGuideUI.cs
  24. 106 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ListCardGuideItem.cs
  25. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ListCardGuideItem.cs.meta
  26. 89 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ListDressUpPartsItem.cs
  27. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ListDressUpPartsItem.cs.meta
  28. 77 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ProgressBar2.cs
  29. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ProgressBar2.cs.meta
  30. 74 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ProgressBar3.cs
  31. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ProgressBar3.cs.meta
  32. 77 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ProgressBar4.cs
  33. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ProgressBar4.cs.meta
  34. 87 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitGuideDetailUI.cs
  35. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitGuideDetailUI.cs.meta
  36. 10 18
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitGuideUI.cs
  37. 77 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitStoryItem.cs
  38. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitStoryItem.cs.meta
  39. 78 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitTypeItem.cs
  40. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitTypeItem.cs.meta
  41. 96 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitTypeItems.cs
  42. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitTypeItems.cs.meta
  43. 9 0
      GameClient/Assets/Game/HotUpdate/Utils/SuitUtil.cs
  44. 50 14
      GameClient/Assets/Game/HotUpdate/Views/Card/CardFosterView.cs
  45. 1 0
      GameClient/Assets/Game/HotUpdate/Views/Card/CardSkillView.cs
  46. 2 2
      GameClient/Assets/Game/HotUpdate/Views/Common/Controller/GoodsItemTipsController.cs
  47. 0 1
      GameClient/Assets/Game/HotUpdate/Views/CommonGame/ApproachView.cs
  48. 5 0
      GameClient/Assets/Game/HotUpdate/Views/CommonGame/GoodsItemTipsView.cs
  49. 14 1
      GameClient/Assets/Game/HotUpdate/Views/DressUp/DressFilterView.cs
  50. 6 7
      GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpView.cs
  51. 153 0
      GameClient/Assets/Game/HotUpdate/Views/FieldGuide/CardGuideView.cs
  52. 11 0
      GameClient/Assets/Game/HotUpdate/Views/FieldGuide/CardGuideView.cs.meta
  53. 314 0
      GameClient/Assets/Game/HotUpdate/Views/FieldGuide/DressUpGuideView.cs
  54. 11 0
      GameClient/Assets/Game/HotUpdate/Views/FieldGuide/DressUpGuideView.cs.meta
  55. 33 70
      GameClient/Assets/Game/HotUpdate/Views/FieldGuide/FieldGuideView.cs
  56. 181 0
      GameClient/Assets/Game/HotUpdate/Views/FieldGuide/SuitGuideDetailView.cs
  57. 11 0
      GameClient/Assets/Game/HotUpdate/Views/FieldGuide/SuitGuideDetailView.cs.meta
  58. 100 163
      GameClient/Assets/Game/HotUpdate/Views/FieldGuide/SuitGuideView.cs
  59. BIN
      GameClient/Assets/ResIn/UI/Card/Card_fui.bytes
  60. BIN
      GameClient/Assets/ResIn/UI/CommonGame/CommonGame_fui.bytes
  61. BIN
      GameClient/Assets/ResIn/UI/DressUp/DressUp_fui.bytes
  62. BIN
      GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0!a.png
  63. BIN
      GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0.png
  64. BIN
      GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0_1!a.png
  65. BIN
      GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0_1.png
  66. BIN
      GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0_2!a.png
  67. BIN
      GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0_2.png
  68. BIN
      GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_fui.bytes

+ 4 - 1
GameClient/Assets/Game/HotUpdate/Constant/ConstFieldGuideId.cs

@@ -4,6 +4,9 @@ namespace GFGGame
     {
         public const int SUIT_GUIDE = 1;//套装图鉴
         public const int CHAPTER_ITEM = 2;//博物图鉴
-        public const int TRAVEL_GUIDE = 3;//千山万水
+        public const int DRESS_UP_GUIDE = 3;//服装图鉴
+        public const int CARD_GUIDE = 4;//词牌图鉴
+        public const int TRAVEL_GUIDE = 5;//千山万水
+
     }
 }

+ 78 - 6
GameClient/Assets/Game/HotUpdate/Data/CardDataManager.cs

@@ -72,7 +72,7 @@ namespace GFGGame
             _cardDicByType[cardData.itemCfg.mainScore][cardData.id] = cardData;
         }
 
-        private static List<string> GetCardResources(ItemCfg itemCfg)
+        public static List<string> GetCardResources(ItemCfg itemCfg)
         {
             List<string> resources = new List<string>();
             resources.Add(itemCfg.res);
@@ -99,22 +99,25 @@ namespace GFGGame
                 {
                     return -1;
                 }
-                else {
+                else
+                {
                     if (a.star < b.star)
                     {
                         return 1;
                     }
-                    else if (a.star > b.star) { 
+                    else if (a.star > b.star)
+                    {
                         return -1;
                     }
-                    else {
+                    else
+                    {
                         if (a.lv < b.lv)
                             return 1;
                         else if (a.lv > b.lv)
                             return -1;
                         else
                         {
-                            if (a.mainScore> b.mainScore)
+                            if (a.mainScore > b.mainScore)
                                 return 1;
                             else if (a.mainScore < b.mainScore)
                                 return -1;
@@ -136,7 +139,8 @@ namespace GFGGame
         /// <returns></returns>
         public static CardData GetCardDataById(int cardId)
         {
-            if (_cardDicByType.Count == 0 || !_cardDicByType.ContainsKey(0) || !_cardDicByType[0].ContainsKey(cardId)) { 
+            if (_cardDicByType.Count == 0 || !_cardDicByType.ContainsKey(0) || !_cardDicByType[0].ContainsKey(cardId))
+            {
                 return null;
             }
             return _cardDicByType[0][cardId];
@@ -271,5 +275,73 @@ namespace GFGGame
 
             return true;
         }
+
+        /// <summary>
+        /// 根据主属性获取有序牌ID列表(排序规则: 已获得词牌按稀有度从高到低 > 未获得词牌按稀有度从高到低 > 按词牌名字拼音)
+        /// </summary>
+        /// <param name="mainScore">
+        /// 0 - 全部
+        /// </param>
+        /// <returns></returns>
+        public static List<int> GetAllCardIdListByRoleType(int mainScore)
+        {
+            List<int> result = new List<int>();
+
+            List<ItemCfg> itemCfgs = ItemCfgArray.Instance.GetCfgsByitemType(ConstItemType.CARD);
+            itemCfgs.Sort((a, b) =>
+            {
+                bool haveA = GetCardDataById(a.id) != null;
+                bool haveB = GetCardDataById(b.id) != null;
+
+                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 (mainScore == 0 || itemCfgs[i].mainScore == mainScore)
+                {
+                    result.Add(itemCfgs[i].id);
+                }
+            }
+
+            return result;
+        }
+
+        public static void GetTotalProgress(out int haveCount, out int totalCount, int mainScore = 0)
+        {
+            List<ItemCfg> itemCfgs = ItemCfgArray.Instance.GetCfgsByitemType(ConstItemType.CARD);
+            totalCount = itemCfgs.Count;
+
+            if (mainScore != 0)
+            {
+                totalCount = 0;
+                for (int i = 0; i < itemCfgs.Count; i++)
+                {
+                    if (itemCfgs[i].mainScore == mainScore)
+                    {
+                        ++totalCount;
+                    }
+                }
+            }
+
+            haveCount = _cardDicByType.ContainsKey(mainScore) ? _cardDicByType[mainScore].Count : 0;
+        }
+
+
     }
 }

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

@@ -622,5 +622,160 @@ namespace GFGGame
                 ItemCfgArray.Instance.GetCfg(itemId);
             }
         }
+
+        private static int[] dressUpGuideSubType = {
+            ConstDressUpItemType.FA_XING, ConstDressUpItemType.LIAN_YI_QUN , ConstDressUpItemType.NEI_DA,
+            ConstDressUpItemType.WAI_TAO,ConstDressUpItemType.SHANG_YI,ConstDressUpItemType.XIA_ZHUANG,ConstDressUpItemType.WA_ZI,
+            ConstDressUpItemType.XIE_ZI,ConstDressUpItemType.SHOU_CHI_WU, ConstDressUpItemType.ZHUANG_RONG};
+
+        private static int[] dressUpGuideAccessoriesType = {
+            ConstDressUpItemType.TOU_SHI, ConstDressUpItemType.ER_SHI , ConstDressUpItemType.JING_SHI,
+            ConstDressUpItemType.MIAN_BU,ConstDressUpItemType.YAO_SHI,ConstDressUpItemType.SHOU_SHI,ConstDressUpItemType.PI_BO};
+        
+        /// <summary>
+        /// 根据主属性获取有序服装散件ID列表(排序规则: 已获得按稀有度从高到低 > 未获得按稀有度从高到低 > 名字拼音)
+        /// 包含已获得和未获得
+        /// </summary>
+        /// <param name="subType">0-全部</param>
+        /// <param name="sorted">true-有序</param>
+        /// <returns></returns>
+        public static List<int> GetAllDressUpGuideIdListBySubType(int subType, bool sorted = true)
+        {
+            List<int> result = new List<int>();
+            List<ItemCfg> itemCfgs = new List<ItemCfg>();
+           
+
+            if (subType == 0)
+            {
+                // 除饰品外的散件
+                for (int i = 0; i < dressUpGuideSubType.Length; i++)
+                {
+                    itemCfgs.AddRange(ItemCfgArray.Instance.GetCfgsByitemTypeAndsubType(ConstItemType.DRESS_UP, dressUpGuideSubType[i]));
+                }
+
+                // 饰品
+                for (int i = 0; i < dressUpGuideAccessoriesType.Length; i++)
+                {
+                    itemCfgs.AddRange(ItemCfgArray.Instance.GetCfgsByitemTypeAndsubType(ConstItemType.DRESS_UP, dressUpGuideAccessoriesType[i]));
+                }
+            }
+            else
+            {
+                if(subType == ConstDressUpItemType.TE_SHU)
+                {
+                    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));
+                        }
+                    }
+                }
+                else
+                {
+                    itemCfgs = ItemCfgArray.Instance.GetCfgsByitemTypeAndsubType(ConstItemType.DRESS_UP, subType);
+                }
+                
+            }
+
+            if (sorted)
+            {
+                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++)
+            {
+                result.Add(itemCfgs[i].id);
+            }
+
+            return result;
+        }
+
+        public static void SortDressUpGuideIdList(List<int> list)
+        {
+            list.Sort((a, b) =>
+            {
+                ItemCfg itemA = ItemCfgArray.Instance.GetCfg(a);
+                ItemCfg itemB = ItemCfgArray.Instance.GetCfg(b);
+
+                bool haveA = CheckHasItem(itemA.id);
+                bool haveB = CheckHasItem(itemB.id);
+
+                if (haveB && !haveA)
+                {
+                    return 1;
+                }
+                else if (!haveB && haveA)
+                {
+                    return -1;
+                }
+
+                if (itemA.rarity != itemB.rarity)
+                {
+                    return itemA.rarity > itemB.rarity ? -1 : 1;
+                }
+
+                return itemA.res.CompareTo(itemB.res);
+
+            });
+        }
+
+
+        public static void GetTotalProgress(out int haveCount, out int totalCount, int subType = 0)
+        {
+            List<int> itemCfgs = GetAllDressUpGuideIdListBySubType(subType);
+            totalCount = itemCfgs.Count;
+            haveCount = 0;
+
+            if (subType == 0)
+            {
+                // 除饰品外的散件
+                for (int i = 0; i < dressUpGuideSubType.Length; i++)
+                {
+                    if (_itemDatasBySubTypeDic.ContainsKey(dressUpGuideSubType[i]))
+                    {
+                        haveCount += _itemDatasBySubTypeDic[dressUpGuideSubType[i]].Count;
+                    }
+                }
+
+                // 饰品
+                for (int i = 0; i < dressUpGuideAccessoriesType.Length; i++)
+                {
+                    if (_itemDatasBySubTypeDic.ContainsKey(dressUpGuideAccessoriesType[i]))
+                    {
+                        haveCount += _itemDatasBySubTypeDic[dressUpGuideAccessoriesType[i]].Count;
+                    }
+                }
+            }
+            else
+            {
+                haveCount = _itemDatasBySubTypeDic.ContainsKey(subType) ? _itemDatasBySubTypeDic[subType].Count : 0;
+            }
+        }
+ 
     }
 }

+ 6 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Card/UI_CardSkillUI.cs

@@ -8,6 +8,7 @@ namespace UI.Card
     {
         public GComponent target;
         public Controller m_c1;
+        public Controller m_c2;
         public GLoader m_loaSkill;
         public GTextField m_txtName;
         public UI_ComSkillDiscribe m_comCurLV;
@@ -15,6 +16,7 @@ namespace UI.Card
         public GList m_listConsume;
         public GComponent m_comConsume;
         public GButton m_btnUpLv;
+        public GGroup m_lvInfo;
         public const string URL = "ui://7l6lvkayrhha9m";
         public const string PACKAGE_NAME = "Card";
         public const string RES_NAME = "CardSkillUI";
@@ -63,6 +65,7 @@ namespace UI.Card
         private void Init(GComponent comp)
         {
             m_c1 = comp.GetController("c1");
+            m_c2 = comp.GetController("c2");
             m_loaSkill = (GLoader)comp.GetChild("loaSkill");
             m_txtName = (GTextField)comp.GetChild("txtName");
             m_comCurLV = (UI_ComSkillDiscribe)UI_ComSkillDiscribe.Create(comp.GetChild("comCurLV"));
@@ -70,10 +73,12 @@ namespace UI.Card
             m_listConsume = (GList)comp.GetChild("listConsume");
             m_comConsume = (GComponent)comp.GetChild("comConsume");
             m_btnUpLv = (GButton)comp.GetChild("btnUpLv");
+            m_lvInfo = (GGroup)comp.GetChild("lvInfo");
         }
         public void Dispose(bool disposeTarget = false)
         {
             m_c1 = null;
+            m_c2 = null;
             m_loaSkill = null;
             m_txtName = null;
             m_comCurLV.Dispose();
@@ -83,6 +88,7 @@ namespace UI.Card
             m_listConsume = null;
             m_comConsume = null;
             m_btnUpLv = null;
+            m_lvInfo = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 6 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Card/UI_ComFosterBottom.cs

@@ -11,6 +11,7 @@ namespace UI.Card
         public Controller m_ctrlFullLv;
         public Controller m_ctrlTab;
         public Controller m_ctrlSkillCount;
+        public Controller m_c_from;
         public GGraph m_holderfBgEff;
         public GLoader m_loaRarity;
         public GTextField m_txtName0;
@@ -54,6 +55,7 @@ namespace UI.Card
         public GGraph m_holderflower;
         public GGraph m_holderTouchFlower;
         public GList m_listProperty;
+        public GButton m_btnSkill_2;
         public Transition m_starItemAlpha;
         public Transition m_openViewShow;
         public const string URL = "ui://7l6lvkayj4c69d";
@@ -107,6 +109,7 @@ namespace UI.Card
             m_ctrlFullLv = comp.GetController("ctrlFullLv");
             m_ctrlTab = comp.GetController("ctrlTab");
             m_ctrlSkillCount = comp.GetController("ctrlSkillCount");
+            m_c_from = comp.GetController("c_from");
             m_holderfBgEff = (GGraph)comp.GetChild("holderfBgEff");
             m_loaRarity = (GLoader)comp.GetChild("loaRarity");
             m_txtName0 = (GTextField)comp.GetChild("txtName0");
@@ -150,6 +153,7 @@ namespace UI.Card
             m_holderflower = (GGraph)comp.GetChild("holderflower");
             m_holderTouchFlower = (GGraph)comp.GetChild("holderTouchFlower");
             m_listProperty = (GList)comp.GetChild("listProperty");
+            m_btnSkill_2 = (GButton)comp.GetChild("btnSkill");
             m_starItemAlpha = comp.GetTransition("starItemAlpha");
             m_openViewShow = comp.GetTransition("openViewShow");
         }
@@ -159,6 +163,7 @@ namespace UI.Card
             m_ctrlFullLv = null;
             m_ctrlTab = null;
             m_ctrlSkillCount = null;
+            m_c_from = null;
             m_holderfBgEff = null;
             m_loaRarity = null;
             m_txtName0 = null;
@@ -207,6 +212,7 @@ namespace UI.Card
             m_holderflower = null;
             m_holderTouchFlower = null;
             m_listProperty = null;
+            m_btnSkill_2 = null;
             m_starItemAlpha = null;
             m_openViewShow = null;
             if(disposeTarget && target != null)

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Card/UI_ComFosterTop.cs

@@ -7,6 +7,7 @@ namespace UI.Card
     public partial class UI_ComFosterTop
     {
         public GComponent target;
+        public Controller m_c1;
         public GButton m_btnback;
         public GComponent m_comValueBar;
         public GButton m_btnStory;
@@ -59,6 +60,7 @@ namespace UI.Card
 
         private void Init(GComponent comp)
         {
+            m_c1 = comp.GetController("c1");
             m_btnback = (GButton)comp.GetChild("btnback");
             m_comValueBar = (GComponent)comp.GetChild("comValueBar");
             m_btnStory = (GButton)comp.GetChild("btnStory");
@@ -67,6 +69,7 @@ namespace UI.Card
         }
         public void Dispose(bool disposeTarget = false)
         {
+            m_c1 = null;
             m_btnback = null;
             m_comValueBar = null;
             m_btnStory = null;

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Card/UI_ListSkillItem.cs

@@ -7,6 +7,7 @@ namespace UI.Card
     public partial class UI_ListSkillItem
     {
         public GButton target;
+        public Controller m_c1;
         public GLoader m_loaSkill;
         public GTextField m_txtLv;
         public GTextField m_txtName;
@@ -57,12 +58,14 @@ namespace UI.Card
 
         private void Init(GComponent comp)
         {
+            m_c1 = comp.GetController("c1");
             m_loaSkill = (GLoader)comp.GetChild("loaSkill");
             m_txtLv = (GTextField)comp.GetChild("txtLv");
             m_txtName = (GTextField)comp.GetChild("txtName");
         }
         public void Dispose(bool disposeTarget = false)
         {
+            m_c1 = null;
             m_loaSkill = null;
             m_txtLv = null;
             m_txtName = null;

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/CommonGame/UI_ComTipsBase.cs

@@ -10,6 +10,7 @@ namespace UI.CommonGame
         public GLoader m_loaIcon;
         public GLoader m_loaRarity;
         public GTextField m_txtType;
+        public GImage m_unlock;
         public GTextField m_txtOwned;
         public GTextField m_txtDesc;
         public GTextField m_txtGong;
@@ -70,6 +71,7 @@ namespace UI.CommonGame
             m_loaIcon = (GLoader)comp.GetChild("loaIcon");
             m_loaRarity = (GLoader)comp.GetChild("loaRarity");
             m_txtType = (GTextField)comp.GetChild("txtType");
+            m_unlock = (GImage)comp.GetChild("unlock");
             m_txtOwned = (GTextField)comp.GetChild("txtOwned");
             m_txtDesc = (GTextField)comp.GetChild("txtDesc");
             m_txtGong = (GTextField)comp.GetChild("txtGong");
@@ -86,6 +88,7 @@ namespace UI.CommonGame
             m_loaIcon = null;
             m_loaRarity = null;
             m_txtType = null;
+            m_unlock = null;
             m_txtOwned = null;
             m_txtDesc = null;
             m_txtGong = null;

+ 71 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_BonusBox.cs

@@ -0,0 +1,71 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldGuide
+{
+    public partial class UI_BonusBox
+    {
+        public GComponent target;
+        public GLoader m_loaderBonusBox;
+        public const string URL = "ui://vqq9h9h4e3ot71";
+        public const string PACKAGE_NAME = "FieldGuide";
+        public const string RES_NAME = "BonusBox";
+        private static UI_BonusBox _proxy;
+
+        public static UI_BonusBox Create(GObject gObject = null)
+        {
+            var ui = new UI_BonusBox();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_BonusBox Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_BonusBox();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_loaderBonusBox = (GLoader)comp.GetChild("loaderBonusBox");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_loaderBonusBox = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 1 - 1
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_CompBanner.cs.meta → GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_BonusBox.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 81006af8fb4c96c49acd43278bdf96d0
+guid: 37535863ea0926f4d9c1c261e1e3eafe
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 71 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_Button6.cs

@@ -0,0 +1,71 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldGuide
+{
+    public partial class UI_Button6
+    {
+        public GButton target;
+        public GTextField m_title1;
+        public const string URL = "ui://vqq9h9h4e3ot6d";
+        public const string PACKAGE_NAME = "FieldGuide";
+        public const string RES_NAME = "Button6";
+        private static UI_Button6 _proxy;
+
+        public static UI_Button6 Create(GObject gObject = null)
+        {
+            var ui = new UI_Button6();
+            if(gObject == null)
+            	ui.target =  (GButton)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GButton)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_Button6 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Button6();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GButton)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GButton)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_title1 = (GTextField)comp.GetChild("title1");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_title1 = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_Button6.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 34bcfe2879e6d6543a23ce5b873dd55b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 77 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_CardGuideComDodgeStar.cs

@@ -0,0 +1,77 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldGuide
+{
+    public partial class UI_CardGuideComDodgeStar
+    {
+        public GComponent target;
+        public Controller m_lightType;
+        public GGraph m_holderStarLight;
+        public GGraph m_holderUpStarMove;
+        public const string URL = "ui://vqq9h9h493pb4j";
+        public const string PACKAGE_NAME = "FieldGuide";
+        public const string RES_NAME = "CardGuideComDodgeStar";
+        private static UI_CardGuideComDodgeStar _proxy;
+
+        public static UI_CardGuideComDodgeStar Create(GObject gObject = null)
+        {
+            var ui = new UI_CardGuideComDodgeStar();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_CardGuideComDodgeStar Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_CardGuideComDodgeStar();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_lightType = comp.GetController("lightType");
+            m_holderStarLight = (GGraph)comp.GetChild("holderStarLight");
+            m_holderUpStarMove = (GGraph)comp.GetChild("holderUpStarMove");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_lightType = null;
+            m_holderStarLight = null;
+            m_holderUpStarMove = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_CardGuideComDodgeStar.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d24f4fbda0505f24982ba557826750ce
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 84 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_CardGuideUI.cs

@@ -0,0 +1,84 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldGuide
+{
+    public partial class UI_CardGuideUI
+    {
+        public GComponent target;
+        public GLoader m_loaBg;
+        public GButton m_btnBack;
+        public GList m_listRole;
+        public GList m_listCard;
+        public UI_ProgressBar2 m_progress;
+        public const string URL = "ui://vqq9h9h4e3ot5t";
+        public const string PACKAGE_NAME = "FieldGuide";
+        public const string RES_NAME = "CardGuideUI";
+        private static UI_CardGuideUI _proxy;
+
+        public static UI_CardGuideUI Create(GObject gObject = null)
+        {
+            var ui = new UI_CardGuideUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_CardGuideUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_CardGuideUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_loaBg = (GLoader)comp.GetChild("loaBg");
+            m_btnBack = (GButton)comp.GetChild("btnBack");
+            m_listRole = (GList)comp.GetChild("listRole");
+            m_listCard = (GList)comp.GetChild("listCard");
+            m_progress = (UI_ProgressBar2)UI_ProgressBar2.Create(comp.GetChild("progress"));
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_loaBg = null;
+            m_btnBack = null;
+            m_listRole = null;
+            m_listCard = null;
+            m_progress.Dispose();
+            m_progress = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_CardGuideUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e5c49be6d1d0f5c4ba67751073e97a48
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 11 - 14
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_CompBanner.cs → GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ComCardMask.cs

@@ -4,19 +4,18 @@ using FairyGUI;
 
 namespace UI.FieldGuide
 {
-    public partial class UI_CompBanner
+    public partial class UI_ComCardMask
     {
         public GComponent target;
-        public GLoader m_loaderPic;
-        public GList m_listTab;
-        public const string URL = "ui://vqq9h9h4pjipg";
+        public GLoader m_loaCard;
+        public const string URL = "ui://vqq9h9h493pb4h";
         public const string PACKAGE_NAME = "FieldGuide";
-        public const string RES_NAME = "CompBanner";
-        private static UI_CompBanner _proxy;
+        public const string RES_NAME = "ComCardMask";
+        private static UI_ComCardMask _proxy;
 
-        public static UI_CompBanner Create(GObject gObject = null)
+        public static UI_ComCardMask Create(GObject gObject = null)
         {
-            var ui = new UI_CompBanner();
+            var ui = new UI_ComCardMask();
             if(gObject == null)
             	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
             else
@@ -25,11 +24,11 @@ namespace UI.FieldGuide
             return ui;
         }
 
-        public static UI_CompBanner Proxy(GObject gObject = null)
+        public static UI_ComCardMask Proxy(GObject gObject = null)
         {
             if(_proxy == null)
             {
-                _proxy = new UI_CompBanner();
+                _proxy = new UI_ComCardMask();
             }
             var ui = _proxy;
             if(gObject == null)
@@ -56,13 +55,11 @@ namespace UI.FieldGuide
 
         private void Init(GComponent comp)
         {
-            m_loaderPic = (GLoader)comp.GetChild("loaderPic");
-            m_listTab = (GList)comp.GetChild("listTab");
+            m_loaCard = (GLoader)comp.GetChild("loaCard");
         }
         public void Dispose(bool disposeTarget = false)
         {
-            m_loaderPic = null;
-            m_listTab = null;
+            m_loaCard = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ComCardMask.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 90199ba5152ffee4d8e29452117cc5c4
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 3
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_CompGuideItem.cs

@@ -8,8 +8,8 @@ namespace UI.FieldGuide
     {
         public GComponent target;
         public GLoader m_loaderPic;
-        public GLoader m_loaderTitle;
         public GTextField m_txtProgress;
+        public GTextField m_progressSymbol;
         public const string URL = "ui://vqq9h9h4pjipe";
         public const string PACKAGE_NAME = "FieldGuide";
         public const string RES_NAME = "CompGuideItem";
@@ -58,14 +58,14 @@ namespace UI.FieldGuide
         private void Init(GComponent comp)
         {
             m_loaderPic = (GLoader)comp.GetChild("loaderPic");
-            m_loaderTitle = (GLoader)comp.GetChild("loaderTitle");
             m_txtProgress = (GTextField)comp.GetChild("txtProgress");
+            m_progressSymbol = (GTextField)comp.GetChild("progressSymbol");
         }
         public void Dispose(bool disposeTarget = false)
         {
             m_loaderPic = null;
-            m_loaderTitle = null;
             m_txtProgress = null;
+            m_progressSymbol = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 13 - 12
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_CompSuitItem.cs

@@ -7,15 +7,15 @@ namespace UI.FieldGuide
     public partial class UI_CompSuitItem
     {
         public GComponent target;
+        public Controller m_c1;
         public GLoader m_bg;
         public GLoader m_loaderPic;
-        public GLoader m_loaderBonusBox;
-        public GTextField m_txtName;
+        public UI_BonusBox m_loaderBonusBox;
         public GProgressBar m_progBar;
         public GLoader m_rarity;
-        public GImage m_imgLockBg;
-        public GImage m_imgLock;
-        public const string URL = "ui://vqq9h9h4pjip14";
+        public GTextField m_txtName;
+        public GImage m_unlockMask;
+        public const string URL = "ui://vqq9h9h4e3ot6n";
         public const string PACKAGE_NAME = "FieldGuide";
         public const string RES_NAME = "CompSuitItem";
         private static UI_CompSuitItem _proxy;
@@ -62,25 +62,26 @@ namespace UI.FieldGuide
 
         private void Init(GComponent comp)
         {
+            m_c1 = comp.GetController("c1");
             m_bg = (GLoader)comp.GetChild("bg");
             m_loaderPic = (GLoader)comp.GetChild("loaderPic");
-            m_loaderBonusBox = (GLoader)comp.GetChild("loaderBonusBox");
-            m_txtName = (GTextField)comp.GetChild("txtName");
+            m_loaderBonusBox = (UI_BonusBox)UI_BonusBox.Create(comp.GetChild("loaderBonusBox"));
             m_progBar = (GProgressBar)comp.GetChild("progBar");
             m_rarity = (GLoader)comp.GetChild("rarity");
-            m_imgLockBg = (GImage)comp.GetChild("imgLockBg");
-            m_imgLock = (GImage)comp.GetChild("imgLock");
+            m_txtName = (GTextField)comp.GetChild("txtName");
+            m_unlockMask = (GImage)comp.GetChild("unlockMask");
         }
         public void Dispose(bool disposeTarget = false)
         {
+            m_c1 = null;
             m_bg = null;
             m_loaderPic = null;
+            m_loaderBonusBox.Dispose();
             m_loaderBonusBox = null;
-            m_txtName = null;
             m_progBar = null;
             m_rarity = null;
-            m_imgLockBg = null;
-            m_imgLock = null;
+            m_txtName = null;
+            m_unlockMask = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 99 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_DressUpGuideUI.cs

@@ -0,0 +1,99 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldGuide
+{
+    public partial class UI_DressUpGuideUI
+    {
+        public GComponent target;
+        public Controller m_c1;
+        public GLoader m_loaBg;
+        public GButton m_btnBack;
+        public GList m_listType1;
+        public GList m_listType2;
+        public GButton m_btnAccessories;
+        public GList m_listDressUp;
+        public GTextField m_txtTips;
+        public UI_ProgressBar2 m_progressBar;
+        public GButton m_btnSearch;
+        public const string URL = "ui://vqq9h9h493pb49";
+        public const string PACKAGE_NAME = "FieldGuide";
+        public const string RES_NAME = "DressUpGuideUI";
+        private static UI_DressUpGuideUI _proxy;
+
+        public static UI_DressUpGuideUI Create(GObject gObject = null)
+        {
+            var ui = new UI_DressUpGuideUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_DressUpGuideUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_DressUpGuideUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_c1 = comp.GetController("c1");
+            m_loaBg = (GLoader)comp.GetChild("loaBg");
+            m_btnBack = (GButton)comp.GetChild("btnBack");
+            m_listType1 = (GList)comp.GetChild("listType1");
+            m_listType2 = (GList)comp.GetChild("listType2");
+            m_btnAccessories = (GButton)comp.GetChild("btnAccessories");
+            m_listDressUp = (GList)comp.GetChild("listDressUp");
+            m_txtTips = (GTextField)comp.GetChild("txtTips");
+            m_progressBar = (UI_ProgressBar2)UI_ProgressBar2.Create(comp.GetChild("progressBar"));
+            m_btnSearch = (GButton)comp.GetChild("btnSearch");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_loaBg = null;
+            m_btnBack = null;
+            m_listType1 = null;
+            m_listType2 = null;
+            m_btnAccessories = null;
+            m_listDressUp = null;
+            m_txtTips = null;
+            m_progressBar.Dispose();
+            m_progressBar = null;
+            m_btnSearch = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_DressUpGuideUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f3dad01d8999c4842848ddd8896b8bf7
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 0 - 4
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_FieldGuideUI.cs

@@ -8,7 +8,6 @@ namespace UI.FieldGuide
     {
         public GComponent target;
         public GLoader m_loaBg;
-        public UI_CompBanner m_compBanner;
         public GButton m_btnBack;
         public GList m_listGuide;
         public const string URL = "ui://vqq9h9h4pjip1";
@@ -59,15 +58,12 @@ namespace UI.FieldGuide
         private void Init(GComponent comp)
         {
             m_loaBg = (GLoader)comp.GetChild("loaBg");
-            m_compBanner = (UI_CompBanner)UI_CompBanner.Create(comp.GetChild("compBanner"));
             m_btnBack = (GButton)comp.GetChild("btnBack");
             m_listGuide = (GList)comp.GetChild("listGuide");
         }
         public void Dispose(bool disposeTarget = false)
         {
             m_loaBg = null;
-            m_compBanner.Dispose();
-            m_compBanner = null;
             m_btnBack = null;
             m_listGuide = null;
             if(disposeTarget && target != null)

+ 106 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ListCardGuideItem.cs

@@ -0,0 +1,106 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldGuide
+{
+    public partial class UI_ListCardGuideItem
+    {
+        public GComponent target;
+        public UI_ComCardMask m_comCard;
+        public GLoader m_loaBorder;
+        public GLoader m_loaRarity;
+        public GTextField m_txtLv;
+        public GTextField m_txtName;
+        public GLoader m_loaMainScore;
+        public UI_CardGuideComDodgeStar m_dodgeStar0;
+        public UI_CardGuideComDodgeStar m_dodgeStar1;
+        public UI_CardGuideComDodgeStar m_dodgeStar2;
+        public UI_CardGuideComDodgeStar m_dodgeStar3;
+        public GImage m_unlockMask;
+        public const string URL = "ui://vqq9h9h4nt1l5l";
+        public const string PACKAGE_NAME = "FieldGuide";
+        public const string RES_NAME = "ListCardGuideItem";
+        private static UI_ListCardGuideItem _proxy;
+
+        public static UI_ListCardGuideItem Create(GObject gObject = null)
+        {
+            var ui = new UI_ListCardGuideItem();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_ListCardGuideItem Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ListCardGuideItem();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_comCard = (UI_ComCardMask)UI_ComCardMask.Create(comp.GetChild("comCard"));
+            m_loaBorder = (GLoader)comp.GetChild("loaBorder");
+            m_loaRarity = (GLoader)comp.GetChild("loaRarity");
+            m_txtLv = (GTextField)comp.GetChild("txtLv");
+            m_txtName = (GTextField)comp.GetChild("txtName");
+            m_loaMainScore = (GLoader)comp.GetChild("loaMainScore");
+            m_dodgeStar0 = (UI_CardGuideComDodgeStar)UI_CardGuideComDodgeStar.Create(comp.GetChild("dodgeStar0"));
+            m_dodgeStar1 = (UI_CardGuideComDodgeStar)UI_CardGuideComDodgeStar.Create(comp.GetChild("dodgeStar1"));
+            m_dodgeStar2 = (UI_CardGuideComDodgeStar)UI_CardGuideComDodgeStar.Create(comp.GetChild("dodgeStar2"));
+            m_dodgeStar3 = (UI_CardGuideComDodgeStar)UI_CardGuideComDodgeStar.Create(comp.GetChild("dodgeStar3"));
+            m_unlockMask = (GImage)comp.GetChild("unlockMask");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_comCard.Dispose();
+            m_comCard = null;
+            m_loaBorder = null;
+            m_loaRarity = null;
+            m_txtLv = null;
+            m_txtName = null;
+            m_loaMainScore = null;
+            m_dodgeStar0.Dispose();
+            m_dodgeStar0 = null;
+            m_dodgeStar1.Dispose();
+            m_dodgeStar1 = null;
+            m_dodgeStar2.Dispose();
+            m_dodgeStar2 = null;
+            m_dodgeStar3.Dispose();
+            m_dodgeStar3 = null;
+            m_unlockMask = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ListCardGuideItem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e68fe4f88fe13ca468e694b180dff329
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 89 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ListDressUpPartsItem.cs

@@ -0,0 +1,89 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldGuide
+{
+    public partial class UI_ListDressUpPartsItem
+    {
+        public GComponent target;
+        public GLoader m_loaBorder;
+        public GImage m_iconSelected;
+        public GLoader m_icon;
+        public GLoader m_rarity;
+        public GLoader m_ScoreType;
+        public GTextField m_txtTitle;
+        public GImage m_unlockMask;
+        public const string URL = "ui://vqq9h9h4yq5y4n";
+        public const string PACKAGE_NAME = "FieldGuide";
+        public const string RES_NAME = "ListDressUpPartsItem";
+        private static UI_ListDressUpPartsItem _proxy;
+
+        public static UI_ListDressUpPartsItem Create(GObject gObject = null)
+        {
+            var ui = new UI_ListDressUpPartsItem();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_ListDressUpPartsItem Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ListDressUpPartsItem();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_loaBorder = (GLoader)comp.GetChild("loaBorder");
+            m_iconSelected = (GImage)comp.GetChild("iconSelected");
+            m_icon = (GLoader)comp.GetChild("icon");
+            m_rarity = (GLoader)comp.GetChild("rarity");
+            m_ScoreType = (GLoader)comp.GetChild("ScoreType");
+            m_txtTitle = (GTextField)comp.GetChild("txtTitle");
+            m_unlockMask = (GImage)comp.GetChild("unlockMask");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_loaBorder = null;
+            m_iconSelected = null;
+            m_icon = null;
+            m_rarity = null;
+            m_ScoreType = null;
+            m_txtTitle = null;
+            m_unlockMask = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ListDressUpPartsItem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e51f594d6750bd54380d0fb6f67eaca5
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 77 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ProgressBar2.cs

@@ -0,0 +1,77 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldGuide
+{
+    public partial class UI_ProgressBar2
+    {
+        public GProgressBar target;
+        public GImage m_barFrame;
+        public GTextField m_title1;
+        public GTextField m_rate;
+        public const string URL = "ui://vqq9h9h4yq5y4m";
+        public const string PACKAGE_NAME = "FieldGuide";
+        public const string RES_NAME = "ProgressBar2";
+        private static UI_ProgressBar2 _proxy;
+
+        public static UI_ProgressBar2 Create(GObject gObject = null)
+        {
+            var ui = new UI_ProgressBar2();
+            if(gObject == null)
+            	ui.target =  (GProgressBar)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GProgressBar)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_ProgressBar2 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ProgressBar2();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GProgressBar)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GProgressBar)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_barFrame = (GImage)comp.GetChild("barFrame");
+            m_title1 = (GTextField)comp.GetChild("title1");
+            m_rate = (GTextField)comp.GetChild("rate");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_barFrame = null;
+            m_title1 = null;
+            m_rate = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ProgressBar2.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6e6b565b1328e1646b4ccfb539086f99
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 74 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ProgressBar3.cs

@@ -0,0 +1,74 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldGuide
+{
+    public partial class UI_ProgressBar3
+    {
+        public GProgressBar target;
+        public GTextField m_rate;
+        public GTextField m_num;
+        public const string URL = "ui://vqq9h9h4e3ot6b";
+        public const string PACKAGE_NAME = "FieldGuide";
+        public const string RES_NAME = "ProgressBar3";
+        private static UI_ProgressBar3 _proxy;
+
+        public static UI_ProgressBar3 Create(GObject gObject = null)
+        {
+            var ui = new UI_ProgressBar3();
+            if(gObject == null)
+            	ui.target =  (GProgressBar)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GProgressBar)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_ProgressBar3 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ProgressBar3();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GProgressBar)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GProgressBar)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_rate = (GTextField)comp.GetChild("rate");
+            m_num = (GTextField)comp.GetChild("num");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_rate = null;
+            m_num = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ProgressBar3.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: bddd43ddb766ed74f8053849b4c4ffe0
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 77 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ProgressBar4.cs

@@ -0,0 +1,77 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldGuide
+{
+    public partial class UI_ProgressBar4
+    {
+        public GProgressBar target;
+        public GImage m_barFrame;
+        public GTextField m_title1;
+        public GTextField m_rate;
+        public const string URL = "ui://vqq9h9h4e3ot6m";
+        public const string PACKAGE_NAME = "FieldGuide";
+        public const string RES_NAME = "ProgressBar4";
+        private static UI_ProgressBar4 _proxy;
+
+        public static UI_ProgressBar4 Create(GObject gObject = null)
+        {
+            var ui = new UI_ProgressBar4();
+            if(gObject == null)
+            	ui.target =  (GProgressBar)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GProgressBar)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_ProgressBar4 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ProgressBar4();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GProgressBar)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GProgressBar)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_barFrame = (GImage)comp.GetChild("barFrame");
+            m_title1 = (GTextField)comp.GetChild("title1");
+            m_rate = (GTextField)comp.GetChild("rate");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_barFrame = null;
+            m_title1 = null;
+            m_rate = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_ProgressBar4.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 87a0a9bda586e4a4db609fcad1447605
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 87 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitGuideDetailUI.cs

@@ -0,0 +1,87 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldGuide
+{
+    public partial class UI_SuitGuideDetailUI
+    {
+        public GComponent target;
+        public GLoader m_loaBg;
+        public GButton m_btnBack;
+        public GList m_listSuit;
+        public GTextField m_title;
+        public GButton m_btnSearch;
+        public UI_ProgressBar4 m_progress;
+        public const string URL = "ui://vqq9h9h4e3ot6l";
+        public const string PACKAGE_NAME = "FieldGuide";
+        public const string RES_NAME = "SuitGuideDetailUI";
+        private static UI_SuitGuideDetailUI _proxy;
+
+        public static UI_SuitGuideDetailUI Create(GObject gObject = null)
+        {
+            var ui = new UI_SuitGuideDetailUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_SuitGuideDetailUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_SuitGuideDetailUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_loaBg = (GLoader)comp.GetChild("loaBg");
+            m_btnBack = (GButton)comp.GetChild("btnBack");
+            m_listSuit = (GList)comp.GetChild("listSuit");
+            m_title = (GTextField)comp.GetChild("title");
+            m_btnSearch = (GButton)comp.GetChild("btnSearch");
+            m_progress = (UI_ProgressBar4)UI_ProgressBar4.Create(comp.GetChild("progress"));
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_loaBg = null;
+            m_btnBack = null;
+            m_listSuit = null;
+            m_title = null;
+            m_btnSearch = null;
+            m_progress.Dispose();
+            m_progress = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitGuideDetailUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 530a893d716ad46459d2cf36899678ea
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 10 - 18
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitGuideUI.cs

@@ -10,12 +10,9 @@ namespace UI.FieldGuide
         public Controller m_c1;
         public GLoader m_loaBg;
         public GButton m_btnBack;
-        public GList m_listType;
-        public GList m_listSuit;
-        public GButton m_btnNotGet;
-        public GButton m_btnHaveGot;
-        public GComboBox m_comBoxSort;
-        public GButton m_btnSwitch;
+        public GList m_suitTypeList;
+        public UI_SuitTypeItems m_suitTypeItems;
+        public GList m_suitType2Items;
         public const string URL = "ui://vqq9h9h4z3os0";
         public const string PACKAGE_NAME = "FieldGuide";
         public const string RES_NAME = "SuitGuideUI";
@@ -66,24 +63,19 @@ namespace UI.FieldGuide
             m_c1 = comp.GetController("c1");
             m_loaBg = (GLoader)comp.GetChild("loaBg");
             m_btnBack = (GButton)comp.GetChild("btnBack");
-            m_listType = (GList)comp.GetChild("listType");
-            m_listSuit = (GList)comp.GetChild("listSuit");
-            m_btnNotGet = (GButton)comp.GetChild("btnNotGet");
-            m_btnHaveGot = (GButton)comp.GetChild("btnHaveGot");
-            m_comBoxSort = (GComboBox)comp.GetChild("comBoxSort");
-            m_btnSwitch = (GButton)comp.GetChild("btnSwitch");
+            m_suitTypeList = (GList)comp.GetChild("suitTypeList");
+            m_suitTypeItems = (UI_SuitTypeItems)UI_SuitTypeItems.Create(comp.GetChild("suitTypeItems"));
+            m_suitType2Items = (GList)comp.GetChild("suitType2Items");
         }
         public void Dispose(bool disposeTarget = false)
         {
             m_c1 = null;
             m_loaBg = null;
             m_btnBack = null;
-            m_listType = null;
-            m_listSuit = null;
-            m_btnNotGet = null;
-            m_btnHaveGot = null;
-            m_comBoxSort = null;
-            m_btnSwitch = null;
+            m_suitTypeList = null;
+            m_suitTypeItems.Dispose();
+            m_suitTypeItems = null;
+            m_suitType2Items = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 77 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitStoryItem.cs

@@ -0,0 +1,77 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldGuide
+{
+    public partial class UI_SuitStoryItem
+    {
+        public GComponent target;
+        public GImage m_icon;
+        public GTextField m_title;
+        public GTextField m_progressNum;
+        public const string URL = "ui://vqq9h9h4e3ot6k";
+        public const string PACKAGE_NAME = "FieldGuide";
+        public const string RES_NAME = "SuitStoryItem";
+        private static UI_SuitStoryItem _proxy;
+
+        public static UI_SuitStoryItem Create(GObject gObject = null)
+        {
+            var ui = new UI_SuitStoryItem();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_SuitStoryItem Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_SuitStoryItem();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_icon = (GImage)comp.GetChild("icon");
+            m_title = (GTextField)comp.GetChild("title");
+            m_progressNum = (GTextField)comp.GetChild("progressNum");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_icon = null;
+            m_title = null;
+            m_progressNum = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitStoryItem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a115af083b637b8458c395d55689d2a3
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 78 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitTypeItem.cs

@@ -0,0 +1,78 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldGuide
+{
+    public partial class UI_SuitTypeItem
+    {
+        public GComponent target;
+        public GLoader m_icon;
+        public GTextField m_title;
+        public UI_ProgressBar3 m_progress;
+        public const string URL = "ui://vqq9h9h4e3ot6e";
+        public const string PACKAGE_NAME = "FieldGuide";
+        public const string RES_NAME = "SuitTypeItem";
+        private static UI_SuitTypeItem _proxy;
+
+        public static UI_SuitTypeItem Create(GObject gObject = null)
+        {
+            var ui = new UI_SuitTypeItem();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_SuitTypeItem Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_SuitTypeItem();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_icon = (GLoader)comp.GetChild("icon");
+            m_title = (GTextField)comp.GetChild("title");
+            m_progress = (UI_ProgressBar3)UI_ProgressBar3.Create(comp.GetChild("progress"));
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_icon = null;
+            m_title = null;
+            m_progress.Dispose();
+            m_progress = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitTypeItem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a1f88209f23a70247adfd70f4f2f1945
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 96 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitTypeItems.cs

@@ -0,0 +1,96 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldGuide
+{
+    public partial class UI_SuitTypeItems
+    {
+        public GComponent target;
+        public UI_SuitTypeItem m_item1;
+        public UI_SuitTypeItem m_item2;
+        public UI_SuitTypeItem m_item3;
+        public UI_SuitTypeItem m_item4;
+        public UI_SuitTypeItem m_item5;
+        public UI_SuitTypeItem m_item6;
+        public UI_SuitTypeItem m_item7;
+        public const string URL = "ui://vqq9h9h4e3ot6f";
+        public const string PACKAGE_NAME = "FieldGuide";
+        public const string RES_NAME = "SuitTypeItems";
+        private static UI_SuitTypeItems _proxy;
+
+        public static UI_SuitTypeItems Create(GObject gObject = null)
+        {
+            var ui = new UI_SuitTypeItems();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_SuitTypeItems Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_SuitTypeItems();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_item1 = (UI_SuitTypeItem)UI_SuitTypeItem.Create(comp.GetChild("item1"));
+            m_item2 = (UI_SuitTypeItem)UI_SuitTypeItem.Create(comp.GetChild("item2"));
+            m_item3 = (UI_SuitTypeItem)UI_SuitTypeItem.Create(comp.GetChild("item3"));
+            m_item4 = (UI_SuitTypeItem)UI_SuitTypeItem.Create(comp.GetChild("item4"));
+            m_item5 = (UI_SuitTypeItem)UI_SuitTypeItem.Create(comp.GetChild("item5"));
+            m_item6 = (UI_SuitTypeItem)UI_SuitTypeItem.Create(comp.GetChild("item6"));
+            m_item7 = (UI_SuitTypeItem)UI_SuitTypeItem.Create(comp.GetChild("item7"));
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_item1.Dispose();
+            m_item1 = null;
+            m_item2.Dispose();
+            m_item2 = null;
+            m_item3.Dispose();
+            m_item3 = null;
+            m_item4.Dispose();
+            m_item4 = null;
+            m_item5.Dispose();
+            m_item5 = null;
+            m_item6.Dispose();
+            m_item6 = null;
+            m_item7.Dispose();
+            m_item7 = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitTypeItems.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: fb9a956397ca18c4bb19c24b47d85572
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
GameClient/Assets/Game/HotUpdate/Utils/SuitUtil.cs

@@ -96,6 +96,15 @@ namespace GFGGame
                 {
                     return -1;
                 }
+
+                if (suitCfgB.rarity > suitCfgA.rarity)
+                {
+                    return 1;
+                }
+                else if (suitCfgB.rarity < suitCfgA.rarity)
+                {
+                    return -1;
+                }
                 return string.Compare(suitCfgA.res, suitCfgB.res);
             });
             return arrayList;

+ 50 - 14
GameClient/Assets/Game/HotUpdate/Views/Card/CardFosterView.cs

@@ -12,8 +12,13 @@ using ET;
 
 namespace GFGGame
 {
-    public class CardFosterView : BaseView
+    public class CardFosterView : BaseWindow
     {
+        private enum Source
+        {
+            COMMON, // 由普通词牌界面进入
+            DISPLAY // 由词牌图鉴进入
+        }
         private UI_CardFosterUI _ui;
         private UI_ComFosterBottom _comFosterBottom;
         private ValueBarController _valueBarController;
@@ -118,6 +123,7 @@ namespace GFGGame
             _ui.m_ComFosterBottom.m_listLvConsume.itemRenderer = RenderListLvConsumeItem;
             _ui.m_ComFosterBottom.m_listStarConsume.itemRenderer = RenderListStarConsumeItem;
             _ui.m_ComFosterBottom.m_listSkill.itemRenderer = RenderListSkillItem;
+            _ui.m_ComFosterBottom.m_listSkill.onClickItem.Add(OnClickListSkillItem);
 
             //满星级后卡面列表
             _ui.m_ComFosterBottom.m_listShowCard.itemRenderer = RenderListShowCardItem;
@@ -229,11 +235,29 @@ namespace GFGGame
             base.OnShown();
 
             _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("cp_beijing");
-
-            _cardData = CardDataManager.GetCardDataById((this.viewData as CardData).id);
-            _nowIndex = _cardData.index;
             _comFosterBottom = _ui.m_ComFosterBottom;
 
+            // old
+            if ((this.viewData as object[]) == null)
+            {
+                _cardData = CardDataManager.GetCardDataById((this.viewData as CardData).id);
+                _ui.m_ComFosterBottom.m_c_from.selectedIndex = (int)Source.COMMON;
+                _selectTab = 0;
+            }
+            // New
+            else
+            {
+                _cardData = CardDataManager.GetCardDataById((int)(this.viewData as object[])[0]);
+                string fromViewName = (string)((this.viewData as object[])[1]);
+                if (fromViewName.Equals(typeof(CardGuideView).FullName))
+                {
+                    _ui.m_ComFosterBottom.m_c_from.selectedIndex = (int)Source.DISPLAY;
+                    _selectTab = 2; // 默认选中技能tab
+                }
+            }
+
+            _ui.m_ComFosterTop.m_c1.selectedIndex = _ui.m_ComFosterBottom.m_c_from.selectedIndex;
+            _nowIndex = _cardData.index;
             _cardList = CardDataManager.GetCardListByRoleType(_cardData.pageIndex);
             if (CardDataManager.isFilter == true)
             {
@@ -994,6 +1018,15 @@ namespace GFGGame
         private void RenderListSkillItem(int index, GObject obj)
         {
             UI_ListSkillItem item = UI_ListSkillItem.Proxy(obj);
+            item.m_c1.selectedIndex = _comFosterBottom.m_c_from.selectedIndex;
+            if (_comFosterBottom.m_c_from.selectedIndex == (int)Source.DISPLAY)
+            {
+                item.target.mode = ButtonMode.Common;
+            }
+            else
+            {
+                item.target.mode = ButtonMode.Radio;
+            }
             PassivitySkillCfg skillCfg = PassivitySkillCfgArray.Instance.GetCfgsBycardId(_cardData.id)[index];
             int skillLv = SkillDataManager.Instance.GetCardSkillLv(_cardData.id, skillCfg.skillId);
             CardData data = CardDataManager.GetCardDataById(InstanceZonesDataManager.currentCardId);
@@ -1004,11 +1037,20 @@ namespace GFGGame
             // item.m_txtDesc.text = skillLvlCfg.describe;
             // item.m_btnUp.visible = PassivitySkillLvlCfgArray.Instance.GetCfgByskilllvlAndskillId(skillLv + 1, skillCfg.skillId) != null;
             RedDotController.Instance.SetComRedDot(item.target, RedDotDataManager.Instance.GetCardSkillRed(skillCfg.skillId), "", -10, 10);
+        }
 
-            if (item.target.data == null)
-            {
-                item.target.onClick.Add(OnBtnUpSkill);
-            }
+        private void OnBtnUpSkill()
+        {
+            List<PassivitySkillCfg> skillCfgs = PassivitySkillCfgArray.Instance.GetCfgsBycardId(_cardData.id);
+
+            ViewManager.Show<CardSkillView>(new object[] { _cardData.id, skillCfgs[_comFosterBottom.m_listSkill.selectedIndex].skillId, _comFosterBottom.m_c_from.selectedIndex });
+        }
+
+        private void OnClickListSkillItem(EventContext eventContext)
+        {
+            int index = _comFosterBottom.m_listSkill.GetChildIndex(eventContext.data as GObject);
+            List<PassivitySkillCfg> skillCfgs = PassivitySkillCfgArray.Instance.GetCfgsBycardId(_cardData.id);
+            ViewManager.Show<CardSkillView>(new object[] { _cardData.id, skillCfgs[index].skillId, _comFosterBottom.m_c_from.selectedIndex });
         }
 
         private void OnBtnCheckAuto()
@@ -1029,12 +1071,6 @@ namespace GFGGame
             _comFosterBottom.m_listStarConsume.numItems = cardStarCfg.materiarsArr.Length;
         }
 
-        private void OnBtnUpSkill()
-        {
-            List<PassivitySkillCfg> skillCfgs = PassivitySkillCfgArray.Instance.GetCfgsBycardId(_cardData.id);
-
-            ViewManager.Show<CardSkillView>(new object[] { _cardData.id, skillCfgs[_comFosterBottom.m_listSkill.selectedIndex].skillId });
-        }
         private float touchBeginX = 0;
 
         private void onTouchCardBegin(EventContext context)

+ 1 - 0
GameClient/Assets/Game/HotUpdate/Views/Card/CardSkillView.cs

@@ -50,6 +50,7 @@ namespace GFGGame
 
             _cardId = (int)(viewData as object[])[0];
             _skillId = (int)(viewData as object[])[1];
+            _ui.m_c2.selectedIndex = (int)((viewData as object[])[2]);
             _skillLv = SkillDataManager.Instance.GetCardSkillLv(_cardId, _skillId);
 
             // SkillData skillData = SkillDataManager.Instance.GetSkillLv(_cardId, _skillId);

+ 2 - 2
GameClient/Assets/Game/HotUpdate/Views/Common/Controller/GoodsItemTipsController.cs

@@ -2,7 +2,7 @@ namespace GFGGame
 {
     public class GoodsItemTipsController
     {
-        public static void ShowItemTips(int id, object[] sourceDatas = null)
+        public static void ShowItemTips(int id, object[] sourceDatas = null, bool have = true)
         {
             if (SuitCfgArray.Instance.GetCfg(id) != null)
             {
@@ -16,7 +16,7 @@ namespace GFGGame
             else
             {
                 //sourceDatas{物品id,gobackData,物品需求量}
-                ViewManager.Show<GoodsItemTipsView>(new object[] { id, sourceDatas });
+                ViewManager.Show<GoodsItemTipsView>(new object[] { id, sourceDatas, have });
             }
         }
     }

+ 0 - 1
GameClient/Assets/Game/HotUpdate/Views/CommonGame/ApproachView.cs

@@ -41,7 +41,6 @@ namespace GFGGame
         }
         public void OnShow(object[] viewData)
         {
-
             _viewData = viewData;
             _itemId = (int)viewData[0];
             _fromeViewDatas = viewData[1] as object[];

+ 5 - 0
GameClient/Assets/Game/HotUpdate/Views/CommonGame/GoodsItemTipsView.cs

@@ -58,6 +58,7 @@ namespace GFGGame
             UpdateTags();
             UpdateItems();
             UpdateSourec(sourceDatas);
+
             // this.viewCom.height = _ui.m_grpTips.height;
             // this.viewCom.Center();
             Timers.inst.AddUpdate(CheckGuide);
@@ -95,6 +96,10 @@ namespace GFGGame
             {
                 _ui.m_comTipsBase.m_txtType.text = ItemTypeCfgArray.Instance.GetCfg(itemCfg.subType).name;
             }
+            if ((viewData as object[]).Length >= 2)
+            {
+                _ui.m_comTipsBase.m_unlock.visible = !(bool)(viewData as object[])[2];
+            }
             RarityIconController.UpdateRarityIcon(_ui.m_comTipsBase.m_loaRarity, itemCfg.id, false);
 
             ET.Log.Debug(itemCfg.name + "  itemId:" + itemCfg.id);

+ 14 - 1
GameClient/Assets/Game/HotUpdate/Views/DressUp/DressFilterView.cs

@@ -58,7 +58,20 @@ namespace GFGGame
         protected override void OnShown()
         {
             base.OnShown();
-            _ui.m_c1.selectedIndex = (bool)(this.viewData as object) == true ? 0 : 1;
+
+            // old
+            if ((this.viewData as object[]) == null)
+            {
+                _ui.m_c1.selectedIndex = (bool)(this.viewData as object) == true ? 0 : 1;
+            }
+            // New
+            else
+            {
+                _ui.m_c1.selectedIndex = (int)(this.viewData as object[])[0];
+                // For change m_comSearch.m_c1
+                _ui.m_comSearch.m_c1.selectedIndex = (int)(this.viewData as object[])[1];
+            }
+
             _selectRarityList = DressUpMenuItemDataManager.selectRarityList;// new List<int>();
             _selectScoreList = DressUpMenuItemDataManager.selectScoreList;// new List<int>();
             _selectTagList = DressUpMenuItemDataManager.selectTagList;// new List<string>();

+ 6 - 7
GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpView.cs

@@ -133,8 +133,8 @@ namespace GFGGame
             base.AddEventListener();
             EventAgent.AddEventListener(ConstMessage.CLOSE_PHOTOGRAPHVIEW, UpdateScene);
             EventAgent.AddEventListener(ConstMessage.DRESS_FILTER, UpdatePartsListSort);
-            EventAgent.AddEventListener(ConstMessage.DRESS_SEARCH, UpdateSerch);
-            EventAgent.AddEventListener(ConstMessage.DRESS_FILTER, UpdateSerch);
+            EventAgent.AddEventListener(ConstMessage.DRESS_SEARCH, UpdateSearch);
+            EventAgent.AddEventListener(ConstMessage.DRESS_FILTER, UpdateSearch);
             EventAgent.AddEventListener(ConstMessage.DRESS_FILTER_RESET, DressResetSerch);
         }
         protected override void OnShown()
@@ -190,8 +190,8 @@ namespace GFGGame
             base.RemoveEventListener();
             EventAgent.RemoveEventListener(ConstMessage.CLOSE_PHOTOGRAPHVIEW, UpdateScene);
             EventAgent.RemoveEventListener(ConstMessage.DRESS_FILTER, UpdatePartsListSort);
-            EventAgent.RemoveEventListener(ConstMessage.DRESS_SEARCH, UpdateSerch);
-            EventAgent.RemoveEventListener(ConstMessage.DRESS_FILTER, UpdateSerch);
+            EventAgent.RemoveEventListener(ConstMessage.DRESS_SEARCH, UpdateSearch);
+            EventAgent.RemoveEventListener(ConstMessage.DRESS_FILTER, UpdateSearch);
             EventAgent.RemoveEventListener(ConstMessage.DRESS_FILTER_RESET, DressResetSerch);
         }
         private void OnClickBtnBack()
@@ -639,7 +639,7 @@ namespace GFGGame
                 OnTouchPad();
             }
         }
-        private void UpdateSerch(EventContext context)
+        private void UpdateSearch(EventContext context)
         {
             if (context.data.ToString() == ConstMessage.DRESS_SEARCH)
             {
@@ -663,7 +663,6 @@ namespace GFGGame
         }
         private void UpdateSearchList()
         {
-
             if (_rarityIndex == SORT_BY_HIGH_RARITY)
             {
                 _currentList3 = DressUpMenuItemDataManager.SortItemListByHighRarity(_currentList3);
@@ -673,7 +672,7 @@ namespace GFGGame
                 _currentList3 = DressUpMenuItemDataManager.SortItemListByLowRarity(_currentList3);
             }
             _currentMenuType = 0;
-            _ui.m_partsListSearch.m_list.numItems = _currentList3.Count; ;
+            _ui.m_partsListSearch.m_list.numItems = _currentList3.Count;
         }
         private void ListType1Item(int index, GObject item)
         {

+ 153 - 0
GameClient/Assets/Game/HotUpdate/Views/FieldGuide/CardGuideView.cs

@@ -0,0 +1,153 @@
+using System.Collections;
+using System.Collections.Generic;
+using FairyGUI;
+using UI.FieldGuide;
+using UnityEngine;
+
+namespace GFGGame
+{
+    /// <summary>
+    /// 词牌图鉴界面
+    /// </summary>
+    public class CardGuideView: BaseWindow
+    {
+        private UI_CardGuideUI _ui;
+        private List<int> _cardList;
+
+        public override void Dispose()
+        {
+            if(_ui != null)
+            {
+                _ui.Dispose();
+                _ui = null;
+            }
+
+            base.Dispose();
+        }
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_CardGuideUI.PACKAGE_NAME;
+            _ui = UI_CardGuideUI.Create();
+            this.viewCom = _ui.target;
+            isfullScreen = true;
+            _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("quanping_moren_bg");
+
+            _cardList = new List<int>();
+            _ui.m_listCard.itemRenderer = RenderCardListItem;
+            _ui.m_listCard.onClickItem.Add(OnClickListCardItem);
+            _ui.m_listRole.onClickItem.Add(OnClickRoleListItem);
+            _ui.m_btnBack.onClick.Add(OnClickBtnBack);
+            _ui.m_listRole.selectedIndex = 0;
+        }
+
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.CARD_FILTER, UpdateCardList);
+            EventAgent.AddEventListener(ConstMessage.CARD_INFO, UpdateCardList);
+            EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, UpdateCardList);
+        }
+
+        protected override void RemoveEventListener()
+        {
+            base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.CARD_FILTER, UpdateCardList);
+            EventAgent.RemoveEventListener(ConstMessage.CARD_INFO, UpdateCardList);
+            EventAgent.RemoveEventListener(ConstMessage.ITEM_CHANGED, UpdateCardList);
+        }
+
+        protected override void OnShown()
+        {
+            base.OnShown();
+            UpdateCardList();
+        }
+
+        protected override void OnHide()
+        {
+            base.OnHide();
+            _ui.m_listRole.selectedIndex = 0;
+            _ui.m_listRole.scrollPane.ScrollTop();
+        }
+
+        private void RenderCardListItem(int index, GObject obj)
+        {
+            CardData data = CardDataManager.GetCardDataById(_cardList[index]);
+            UI_ListCardGuideItem listItem = UI_ListCardGuideItem.Proxy(obj);
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_cardList[index]);
+
+            // Have
+            if (data != null)
+            {
+                listItem.m_unlockMask.visible = false;
+                listItem.m_comCard.m_loaCard.url = ResPathUtil.GetCardIconPath(data.resources[data.resIndex]);
+                int starLevelDodge = data.star / 5;
+                for (int i = 0; i < 4; i++)
+                {
+                    UI_CardGuideComDodgeStar dodgeStar = UI_CardGuideComDodgeStar.Proxy(listItem.target.GetChild("dodgeStar" + i));
+                    dodgeStar.m_lightType.selectedIndex = (starLevelDodge > i) ? 1 : 0;
+                    UI_CardGuideComDodgeStar.ProxyEnd();
+                }
+                listItem.target.data = data;
+            }
+            else
+            {
+                listItem.m_comCard.m_loaCard.url = ResPathUtil.GetCardIconPath(itemCfg.res);
+                listItem.m_unlockMask.visible = true;
+                listItem.target.data = null;
+            }
+
+            RarityIconController.UpdateRarityIcon(listItem.m_loaRarity, itemCfg.id, false);// ResPathUtil.GetCommonGameResPath("kp_sxing_x_" + data.itemCfg.rarity);
+            listItem.m_loaMainScore.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + (itemCfg.mainScore));
+            listItem.m_loaBorder.url = "ui://CommonGame/kp_kuang_" + itemCfg.rarity;//ResPathUtil.GetCommonGameResPath("kp_sxing_x_" + data.itemCfg.rarity);
+            listItem.m_txtName.text = itemCfg.name;
+
+            UI_ListCardGuideItem.ProxyEnd();
+        }
+
+        private void OnClickListCardItem(EventContext context)
+        {
+            object data = (context.data as GObject).data;
+            int index = _ui.m_listCard.GetChildIndex(context.data as GObject);
+            if(data == null)
+            {
+                object[] goBackDatas = ViewManager.GetGoBackDatas(typeof(CardGuideView).Name);
+                object[] sourceDatas = new object[] { _cardList[index], goBackDatas, 1 };
+                GoodsItemTipsController.ShowItemTips(_cardList[index], sourceDatas, false);
+            }
+            else
+            {
+                ViewManager.Show<CardFosterView>(new object[] { _cardList[index], typeof(CardGuideView).FullName}, new object[] { typeof(CardGuideView).FullName, _ui.m_listRole.selectedIndex });
+                Hide();
+            }   
+        }
+
+        private void OnClickRoleListItem(EventContext eventContext)
+        {
+            UpdateCardList();
+            _ui.m_listCard.scrollPane.ScrollTop();
+        }
+
+        private void UpdateCardList()
+        {
+            UpdateCardStatusView();
+            _cardList = CardDataManager.GetAllCardIdListByRoleType(_ui.m_listRole.selectedIndex);
+            _ui.m_listCard.numItems = _cardList.Count;
+        }
+
+        private void UpdateCardStatusView()
+        {
+            CardDataManager.GetTotalProgress(out int haveCount, out int totalCount, _ui.m_listRole.selectedIndex);
+            _ui.m_progress.target.max = totalCount;
+            _ui.m_progress.target.value = haveCount;
+            _ui.m_progress.m_title1.SetVar("value", haveCount.ToString()).SetVar("max", totalCount.ToString()).FlushVars();
+            _ui.m_progress.m_rate.SetVar("rate", FieldGuideView.ProgressCalculate(haveCount, totalCount).ToString()).FlushVars();
+        }
+
+        private void OnClickBtnBack()
+        {
+            ViewManager.GoBackFrom(typeof(CardGuideView).FullName);
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/FieldGuide/CardGuideView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d0dc42791dcc95c4baad453fabb66b29
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 314 - 0
GameClient/Assets/Game/HotUpdate/Views/FieldGuide/DressUpGuideView.cs

@@ -0,0 +1,314 @@
+using FairyGUI;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UI.FieldGuide;
+using UnityEngine;
+
+namespace GFGGame
+{
+    /// <summary>
+    /// 服装图鉴界面
+    /// </summary>
+    public class DressUpGuideView : BaseWindow
+    {
+        private UI_DressUpGuideUI _ui;
+        private List<int> _itemIdList;
+
+        // 上次点击单选按钮的index
+        private struct LastClickIndex
+        {
+            public int typeIndex;
+            public int index;
+        }
+
+        private LastClickIndex _lastClickIndex;
+        private int[] _currentList2;
+        public override void Dispose()
+        {
+            if (_ui != null)
+            {
+                _ui.Dispose();
+                _ui = null;
+            }
+            base.Dispose();
+        }
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_DressUpGuideUI.PACKAGE_NAME;
+            _ui = UI_DressUpGuideUI.Create();
+            this.viewCom = _ui.target;
+            isfullScreen = true;
+            _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("quanping_moren_bg");
+
+            _itemIdList = new List<int>();
+
+            _ui.m_btnSearch.onClick.Add(OnClickBtnSearch);
+            _ui.m_btnBack.onClick.Add(OnClickBtnBack);
+            _ui.m_listType1.onClickItem.Add(OnClickListType1Item);
+            _ui.m_listType2.onClickItem.Add(OnClickListType2Item);
+            _ui.m_listDressUp.itemRenderer = RenderListDressUpItem;
+            _ui.m_listDressUp.onClickItem.Add(OnClickListDressUpItem);
+            _ui.m_listDressUp.SetVirtual();
+            _ui.m_btnAccessories.onClick.Add(OnClickBtnAllAccessories);
+        }
+
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.DRESS_SEARCH, FilterItems);
+            EventAgent.AddEventListener(ConstMessage.DRESS_FILTER, FilterItems);
+
+        }
+
+        protected override void RemoveEventListener()
+        {
+            base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.DRESS_SEARCH, FilterItems);
+            EventAgent.RemoveEventListener(ConstMessage.DRESS_FILTER, FilterItems);
+        }
+
+        protected override void OnShown()
+        {
+            base.OnShown();
+            _ui.m_listType1.selectedIndex = 0;
+            _ui.m_c1.selectedIndex = 0;
+            _ui.m_listType1.scrollPane.SetPercX(0,false);
+
+            UpdateItemIdListByType1(0);
+            UpdateItemList();
+        }
+
+        protected override void OnHide()
+        {
+            base.OnHide();
+            _itemIdList.Clear();
+            _currentList2 = null;
+            DressUpMenuItemDataManager.Clear();
+        }
+
+        /// <summary>
+        /// 一级菜单的点击
+        /// </summary>
+        /// <param name="index"></param>
+        /// <param name="item"></param>
+        private void OnClickListType1Item(EventContext context)
+        {
+            GObject gObject = context.data as GObject;
+
+            int index = _ui.m_listType1.GetChildIndex(gObject);
+            if(_lastClickIndex.typeIndex == 1 && _lastClickIndex.index == index)
+            {
+                return;
+            }
+
+            UpdateItemIdListByType1(index);
+            UpdateItemList();
+        }
+
+        private void RenderListDressUpItem(int index, GObject item)
+        {
+            UI_ListDressUpPartsItem listItem = UI_ListDressUpPartsItem.Proxy(item);
+
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_itemIdList[index]);
+            listItem.m_icon.url = ResPathUtil.GetIconPath(itemCfg.res, "png");
+            listItem.m_txtTitle.text = itemCfg.name;
+            listItem.m_ScoreType.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + itemCfg.mainScore);
+            listItem.m_unlockMask.visible = !DressUpMenuItemDataManager.CheckHasItem(itemCfg.id);
+            RarityIconController.UpdateRarityIcon(listItem.m_rarity, _itemIdList[index], false);
+            listItem.target.data = _itemIdList[index];
+
+            UI_ListDressUpPartsItem.ProxyEnd();
+        }
+
+        private void OnClickListDressUpItem(EventContext eventContext)
+        {
+            int id = (int)(eventContext.data as GObject).data;
+
+            object[] goBackDatas = ViewManager.GetGoBackDatas(typeof(CardGuideView).Name);
+            object[] sourceDatas = new object[] { id, goBackDatas, 1 };
+            GoodsItemTipsController.ShowItemTips(id, sourceDatas, DressUpMenuItemDataManager.CheckHasItem(id));
+        }
+
+        /// <summary>
+        /// 二级菜单的点击
+        /// </summary>
+        /// <param name="index"></param>
+        /// <param name="item"></param>
+        private void OnClickListType2Item(EventContext eventContext)
+        {
+            GObject gObject = eventContext.data as GObject;
+
+            int index = _ui.m_listType2.GetChildIndex(gObject);
+            if (_lastClickIndex.typeIndex == 2 && _lastClickIndex.index == index)
+            {
+                return;
+            }
+
+            UpdateItemIdListByType2(index);
+            UpdateItemList();
+        }
+
+        private void OnClickBtnAllAccessories()
+        {
+            // 点击饰品按钮回到一级菜单时,需要更新为 全部饰品 选项
+            UpdateItemIdListByType2(0);
+            UpdateItemList();
+
+            ShowListType1();
+        }
+
+        /// <summary>
+        /// 根据一级菜单的按钮点击,更新itemIDList
+        /// </summary>
+        /// <param name="index">点击按钮的index</param>
+        private void UpdateItemIdListByType1(int index)
+        {
+            _lastClickIndex.typeIndex = 1;
+            _lastClickIndex.index = index;
+
+            // 点击了“全部服装”
+            if (index == 0)
+            {
+                _itemIdList = DressUpMenuItemDataManager.GetAllDressUpGuideIdListBySubType(0);
+            }
+            else
+            {
+                DressUpMenuItemCfg1 item1 = DressUpMenuItemCfg1Array.Instance.dataArray[index - 1];
+
+                // 存在二级菜单
+                if (item1.subMenusArr.Length > 0)
+                {
+                    _itemIdList.Clear();
+
+                    _currentList2 = item1.subMenusArr.Clone() as int[];
+                    for (int i = 0; i < item1.subMenusArr.Length; i++)
+                    {
+                        DressUpMenuItemCfg2 item2 = DressUpMenuItemCfg2Array.Instance.dataArray[_currentList2[i] - 1];
+                        _itemIdList.AddRange(DressUpMenuItemDataManager.GetAllDressUpGuideIdListBySubType(item2.type, false));
+                    }
+                    DressUpMenuItemDataManager.SortDressUpGuideIdList(_itemIdList);
+                    ShowListType2();
+                }
+                else
+                {
+                    _itemIdList = DressUpMenuItemDataManager.GetAllDressUpGuideIdListBySubType(item1.type);
+                }
+            }
+        }
+
+        /// <summary>
+        /// 根据二级菜单的按钮点击,更新itemIDList
+        /// </summary>
+        /// <param name="index">点击按钮的index</param>
+        private void UpdateItemIdListByType2(int index)
+        {
+            _lastClickIndex.typeIndex = 2;
+            _lastClickIndex.index = index;
+
+            if (index == 0)
+            {
+                _itemIdList.Clear();
+                for (int i = 0; i < _currentList2.Length; i++)
+                {
+                    DressUpMenuItemCfg2 item2 = DressUpMenuItemCfg2Array.Instance.dataArray[_currentList2[i] - 1];
+                    _itemIdList.AddRange(DressUpMenuItemDataManager.GetAllDressUpGuideIdListBySubType(item2.type, false));
+                }
+                DressUpMenuItemDataManager.SortDressUpGuideIdList(_itemIdList);
+            }
+            else
+            {
+                DressUpMenuItemCfg2 item2 = DressUpMenuItemCfg2Array.Instance.dataArray[_currentList2[index - 1] - 1];
+                _itemIdList = DressUpMenuItemDataManager.GetAllDressUpGuideIdListBySubType(item2.type);
+            }
+        }
+
+        /// <summary>
+        /// 更新散件列表UI,及收集度
+        /// </summary>
+        private void UpdateItemList(bool refreshProgress = true)
+        {
+            int haveCount = 0;
+            int totalCount = 0;
+
+            _ui.m_listDressUp.numItems = _itemIdList.Count;
+            _ui.m_listDressUp.scrollPane.ScrollTop();
+
+            if (refreshProgress)
+            {
+                for (int i = 0; i < _itemIdList.Count; i++)
+                {
+                    ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_itemIdList[i]);
+                    if (DressUpMenuItemDataManager.CheckHasItem(itemCfg.id))
+                    {
+                        ++haveCount;
+                    }
+                    ++totalCount;
+                }
+
+                UpdateProgress(haveCount, totalCount);
+            }
+
+        }
+
+        private void ShowListType2()
+        {
+            _ui.m_c1.selectedIndex = 1;
+            _ui.m_listType2.selectedIndex = 0;
+            _ui.m_listType2.scrollPane.SetPercX(0, false);
+        }
+
+        private void ShowListType1()
+        {
+            _ui.m_c1.selectedIndex = 0;
+            _currentList2 = null;
+        }
+
+        /// <summary>
+        /// 更新收集进度
+        /// </summary>
+        private void UpdateProgress(int haveCount, int totalCount)
+        {
+            _ui.m_progressBar.target.max = totalCount;
+            _ui.m_progressBar.target.value = haveCount;
+            _ui.m_progressBar.m_title1.SetVar("value", haveCount.ToString()).SetVar("max", totalCount.ToString()).FlushVars();
+            _ui.m_progressBar.m_rate.SetVar("rate", FieldGuideView.ProgressCalculate(haveCount, totalCount).ToString()).FlushVars();
+        }
+
+        private void OnClickBtnBack()
+        {
+            ViewManager.GoBackFrom(typeof(DressUpGuideView).FullName);
+        }
+
+        private void OnClickBtnSearch()
+        {
+            ViewManager.Show<DressFilterView>(false, new object[] { ViewName.DRESS_UP_VIEW });
+        }
+
+        private void FilterItems(EventContext context)
+        {
+            if(_lastClickIndex.typeIndex == 1)
+            {
+                UpdateItemIdListByType1(_lastClickIndex.index);
+            }
+            else if(_lastClickIndex.typeIndex == 2)
+            {
+                UpdateItemIdListByType2(_lastClickIndex.index);
+            }
+
+            if (context.data.ToString() == ConstMessage.DRESS_SEARCH)
+            {
+                _itemIdList = DressUpMenuItemDataManager.DressSearch(_itemIdList);
+            }
+            else if(context.data.ToString() == ConstMessage.DRESS_FILTER)
+            {
+                _itemIdList = DressUpMenuItemDataManager.DressFilter(_itemIdList);
+            }
+            ViewManager.Hide<ModalStatusView>();
+            UpdateItemList(false);
+        }
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/FieldGuide/DressUpGuideView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ee96f7b2caf148643b8615227f57ca35
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 33 - 70
GameClient/Assets/Game/HotUpdate/Views/FieldGuide/FieldGuideView.cs

@@ -11,8 +11,8 @@ namespace GFGGame
 
         private UI_FieldGuideUI _ui;
         private int[] _listBannerDatas = new int[3] { ConstBannerId.ZHAI_XING, ConstBannerId.ZHAI_XING, ConstBannerId.ZHAI_XING };
-        private int[] _listGuideDatas = new int[3] { ConstFieldGuideId.SUIT_GUIDE, ConstFieldGuideId.CHAPTER_ITEM, ConstFieldGuideId.TRAVEL_GUIDE };
-        GetRedCall[] actions = new GetRedCall[] { RedDotDataManager.Instance.GetFieldGuideRed, null, RedDotDataManager.Instance.GetTravelGuideRed };
+        private int[] _listGuideDatas = new int[5] { ConstFieldGuideId.SUIT_GUIDE, ConstFieldGuideId.CHAPTER_ITEM, ConstFieldGuideId.DRESS_UP_GUIDE, ConstFieldGuideId.CARD_GUIDE, ConstFieldGuideId.TRAVEL_GUIDE };
+        GetRedCall[] actions = new GetRedCall[] { RedDotDataManager.Instance.GetFieldGuideRed, null, null, null, RedDotDataManager.Instance.GetTravelGuideRed };
 
         public override void Dispose()
         {
@@ -32,16 +32,10 @@ namespace GFGGame
             this.viewCom = _ui.target;
             isfullScreen = true;
 
-            _ui.m_compBanner.m_listTab.itemRenderer = ListBannerItemRenderer;
-            _ui.m_compBanner.m_listTab.numItems = _listBannerDatas.Length;
-
             _ui.m_listGuide.itemRenderer = ListGuideItemRenderer;
-            // _ui.m_listGuide.numItems = _listGuideDatas.Length;
 
             _ui.m_btnBack.onClick.Add(OnClickBtnBack);
             _ui.m_listGuide.onClickItem.Add(OnClickListGuideItem);
-            _ui.m_compBanner.m_listTab.onClickItem.Add(OnClickListBannerItem);
-            // _ui.m_compBanner.m_loaderPic.onClick.Add(OnClickBannerPic);
 
 
 
@@ -54,18 +48,14 @@ namespace GFGGame
         protected override void OnShown()
         {
             base.OnShown();
-            _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("fuben_bjbj");
+            _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("tjbg");
             _ui.m_listGuide.numItems = _listGuideDatas.Length;
             UpdatePrgress();
-            _ui.m_compBanner.m_listTab.selectedIndex = 0;
-            UpdateBanner(_ui.m_compBanner.m_listTab.GetChildAt(_ui.m_compBanner.m_listTab.selectedIndex));
-            Timers.inst.Add(3, 0, SwitchBannerPic);
         }
 
         protected override void OnHide()
         {
             base.OnHide();
-            Timers.inst.Remove(SwitchBannerPic);
         }
         protected override void RemoveEventListener()
         {
@@ -76,6 +66,7 @@ namespace GFGGame
         private void OnClickBtnBack()
         {
             // this.Hide();
+            _ui.m_listGuide.scrollPane.ScrollTop();
             ViewManager.GoBackFrom(ViewName.FIELD_GUIDE_VIEW);
         }
         private void UpdateList()
@@ -90,35 +81,18 @@ namespace GFGGame
             UI_ButtonBannerPage.ProxyEnd();
         }
 
-        private void OnClickBannerPic()
-        {
-            int id = _listBannerDatas[_ui.m_compBanner.m_listTab.selectedIndex];
-            switch (id)
-            {
-                case ConstBannerId.ZHAI_XING:
-                    ViewManager.Show<LuckyBoxView>(null, new object[] { ViewName.FIELD_GUIDE_VIEW, this.viewData });
-                    this.Hide();
-                    break;
-            }
-        }
 
         private void ListGuideItemRenderer(int index, GObject item)
         {
             UI_CompGuideItem listItem = UI_CompGuideItem.Proxy(item);
             int id = _listGuideDatas[index];
-            listItem.m_loaderTitle.url = "ui://FieldGuide/tujian_taoz_" + id;
             listItem.m_loaderPic.url = "ui://FieldGuide/tujian_tup_" + id;
             listItem.target.data = id;
             bool red = actions[index] == null ? false : actions[index]();
-            RedDotController.Instance.SetComRedDot(listItem.target, red, "", -20);
+            RedDotController.Instance.SetComRedDot(listItem.target, red, "", -46, 51);
             UI_CompGuideItem.ProxyEnd();
         }
 
-        private void OnClickListBannerItem(EventContext context)
-        {
-            UpdateBanner(context.data as GObject);
-        }
-
         private void OnClickListGuideItem(EventContext context)
         {
             GObject listItem = context.data as GObject;
@@ -134,6 +108,12 @@ namespace GFGGame
                 case ConstFieldGuideId.TRAVEL_GUIDE:
                     ViewManager.Show<TravelGuideView>(null, new object[] { ViewName.FIELD_GUIDE_VIEW, this.viewData });
                     break;
+                case ConstFieldGuideId.DRESS_UP_GUIDE:
+                    ViewManager.Show<DressUpGuideView>(null, new object[] { ViewName.FIELD_GUIDE_VIEW, this.viewData });
+                    break;
+                case ConstFieldGuideId.CARD_GUIDE:
+                    ViewManager.Show<CardGuideView>(null, new object[] { ViewName.FIELD_GUIDE_VIEW, this.viewData });
+                    break;
             }
         }
 
@@ -150,6 +130,12 @@ namespace GFGGame
                 case ConstFieldGuideId.TRAVEL_GUIDE:
                     TravelDataManager.Instance.GetTotalTravelProgress(out haveCount, out totalCount);
                     break;
+                case ConstFieldGuideId.CARD_GUIDE:
+                    CardDataManager.GetTotalProgress(out haveCount, out totalCount);
+                    break;
+                case ConstFieldGuideId.DRESS_UP_GUIDE:
+                    DressUpMenuItemDataManager.GetTotalProgress(out haveCount, out totalCount);
+                    break;
                 default:
                     haveCount = 0;
                     totalCount = 1;
@@ -168,54 +154,31 @@ namespace GFGGame
                 int haveCount = 0;
                 int totalCount = 1;
                 GetGuideProgress(id, out haveCount, out totalCount);
-                decimal value = Math.Floor((decimal)100 * haveCount / totalCount);
-                listItem.m_txtProgress.text = value + "%";
+                decimal value = ProgressCalculate(haveCount, totalCount);
+                listItem.m_txtProgress.text = value.ToString();
                 UI_CompGuideItem.ProxyEnd();
             }
         }
 
-        private void UpdateBanner(GObject listItem)
+        public static int ProgressCalculate(int haveCount, int totalCount)
         {
-            string resName = "tujian_huodtu_1";
-            int id = (int)listItem.data;
-            switch (id)
+            float rate = haveCount * 100.0f / totalCount;
+            int result = 0;
+
+            if(rate > 0 && rate <= 1)
             {
-                case ConstBannerId.ZHAI_XING:
-                    resName = "tujian_huodtu_1";
-                    break;
+                result = 1;
             }
-            _ui.m_compBanner.m_loaderPic.url = "ui://FieldGuide/" + resName;
-            UpdateListBannerItems();
-        }
-
-        private void UpdateListBannerItems()
-        {
-            int num = _ui.m_compBanner.m_listTab.numChildren;
-            // for (int i = 0; i < num; i++)
-            // {
-            //     UI_ButtonBannerPage listItem = UI_ButtonBannerPage.Proxy(_ui.m_compBanner.m_listTab.GetChildAt(i));
-            //     if (listItem.target.selected)
-            //     {
-            //         listItem.target.width = 47;
-            //     }
-            //     else
-            //     {
-            //         listItem.target.width = 15;
-            //     }
-            // }
-            // _ui.m_compBanner.m_listTab.ResizeToFit();
-        }
-
-        private void SwitchBannerPic(object param)
-        {
-            int index = _ui.m_compBanner.m_listTab.selectedIndex;
-            index++;
-            if (index >= _listBannerDatas.Length)
+            else if(rate >= 99 && rate < 100)
             {
-                index = 0;
+                result = 99;
             }
-            _ui.m_compBanner.m_listTab.selectedIndex = index;
-            UpdateBanner(_ui.m_compBanner.m_listTab.GetChildAt(_ui.m_compBanner.m_listTab.selectedIndex));
+            else
+            {
+                result = (int)Math.Round(rate);
+            }
+            return result;
         }
+
     }
 }

+ 181 - 0
GameClient/Assets/Game/HotUpdate/Views/FieldGuide/SuitGuideDetailView.cs

@@ -0,0 +1,181 @@
+using FairyGUI;
+using UI.FieldGuide;
+using UI.CommonGame;
+using System.Collections.Generic;
+using UI.ClothingSynthetic;
+using UnityEngine;
+using System;
+
+namespace GFGGame
+{
+    public class SuitGuideDetailView : BaseWindow
+    {
+        private UI_SuitGuideDetailUI _ui;
+        private List<int> _suitIds;
+        private int _suitTypeId;
+
+        public override void Dispose()
+        {
+            if (_ui != null)
+            {
+                _ui.Dispose();
+                _ui = null;
+            }
+            base.Dispose();
+        }
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_SuitGuideDetailUI.PACKAGE_NAME;
+            _ui = UI_SuitGuideDetailUI.Create();
+            this.viewCom = _ui.target;
+            isfullScreen = true;
+            _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("tjbg");
+
+            _ui.m_listSuit.itemRenderer = RenderListSuitItem;
+            _ui.m_btnBack.onClick.Add(OnClickBtnBack);
+            _ui.m_btnSearch.onClick.Add(OnClickBtnSearch);
+        }
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.JUMP_TO_SOURCE, this.Hide);
+            EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, UpdateSuitStatus);
+            EventAgent.AddEventListener(ConstMessage.SUIT_BOX_STATUS_CHANGED, UpdateSuitStatus);
+            EventAgent.AddEventListener(ConstMessage.SUIT_BOX_STATUS_CHANGED, UpdateListSuit);
+            EventAgent.AddEventListener(ConstMessage.DRESS_SEARCH, FilterItems);
+            EventAgent.AddEventListener(ConstMessage.DRESS_FILTER, FilterItems);
+        }
+        protected override void OnShown()
+        {
+            base.OnShown();
+            _suitTypeId = (int)viewData;
+            UpdateListSuit();
+        }
+
+        protected override void OnHide()
+        {
+            base.OnHide();
+
+        }
+        protected override void RemoveEventListener()
+        {
+            base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.JUMP_TO_SOURCE, this.Hide);
+            EventAgent.RemoveEventListener(ConstMessage.ITEM_CHANGED, UpdateSuitStatus);
+            EventAgent.RemoveEventListener(ConstMessage.SUIT_BOX_STATUS_CHANGED, UpdateSuitStatus);
+            EventAgent.RemoveEventListener(ConstMessage.SUIT_BOX_STATUS_CHANGED, UpdateListSuit);
+            EventAgent.RemoveEventListener(ConstMessage.DRESS_SEARCH, FilterItems);
+            EventAgent.RemoveEventListener(ConstMessage.DRESS_FILTER, FilterItems);
+        }
+
+        private void FilterItems(EventContext context)
+        {
+            UpdateListSuit();
+
+            if (context.data.ToString() == ConstMessage.DRESS_SEARCH)
+            {
+                _suitIds = DressUpMenuItemDataManager.DressSearch(_suitIds);
+            }
+            else if (context.data.ToString() == ConstMessage.DRESS_FILTER)
+            {
+                _suitIds = DressUpMenuItemDataManager.DressFilter(_suitIds);
+            }
+
+            ViewManager.Hide<ModalStatusView>();
+            _ui.m_listSuit.numItems = _suitIds.Count;
+
+        }
+
+        private void OnClickBtnBack()
+        {
+            ViewManager.GoBackFrom(typeof(SuitGuideDetailView).FullName);
+        }
+
+        private void OnClickBtnSearch()
+        {
+            ViewManager.Show<DressFilterView>(new object[] { 0, 2 }, new object[] { typeof(SuitGuideDetailView).FullName });
+        }
+
+        private void UpdateListSuit()
+        {
+            _suitIds = SuitUtil.GetSuitIdList(true, true, _suitTypeId, 0);
+            int haveCount = SuitUtil.GetSuitIdList(false, true, _suitTypeId, 0).Count;
+            int totalCount = _suitIds.Count;
+            SuitGuideMenuCfg cfg = SuitGuideMenuCfgArray.Instance.GetCfg(_suitTypeId);
+            _ui.m_title.text = cfg.name;
+            _ui.m_progress.target.value = haveCount;
+            _ui.m_progress.target.max = totalCount;
+            _ui.m_progress.m_title1.SetVar("value", haveCount.ToString()).SetVar("max", totalCount.ToString()).FlushVars();
+            _ui.m_progress.m_rate.SetVar("rate", FieldGuideView.ProgressCalculate(haveCount, totalCount).ToString()).FlushVars();
+            _ui.m_listSuit.numItems = _suitIds.Count;
+            _ui.m_listSuit.scrollPane.ScrollTop();
+        }
+
+        private void RenderListSuitItem(int index, GObject item)
+        {
+            UI_CompSuitItem listItem = UI_CompSuitItem.Proxy(item);
+            int suitId = _suitIds[index];
+            SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(suitId);
+            listItem.m_txtName.text = suitCfg.name;
+            listItem.m_loaderPic.url = ResPathUtil.GetFieldGuideIconPath(suitCfg.res);
+            listItem.m_c1.SetSelectedIndex(suitCfg.rarity - 1);
+            RarityIconController.UpdateRarityIcon(listItem.m_rarity, suitId, false, true);
+
+            listItem.target.data = suitId;
+            UpdateSuitStatusView(listItem);
+            listItem.m_loaderBonusBox.target.onClick.Clear();
+            listItem.m_loaderBonusBox.target.onClick.Add(() =>
+            {
+                SuitUtil.ShowSuitGuideBonus(suitId);
+            });
+            UI_CompSuitItem.ProxyEnd();
+        }
+
+        private void UpdateSuitStatus(EventContext eventContext)
+        {
+            int num = _ui.m_listSuit.numChildren;
+            for (int i = 0; i < num; i++)
+            {
+                UI_CompSuitItem listItem = UI_CompSuitItem.Proxy(_ui.m_listSuit.GetChildAt(i));
+                UpdateSuitStatusView(listItem);
+                UI_CompSuitItem.ProxyEnd();
+            }
+        }
+
+        private void UpdateSuitStatusView(UI_CompSuitItem listItem)
+        {
+            int suitId = (int)listItem.target.data;
+            int count = 0;
+            int totalCount = 0;
+            DressUpMenuSuitDataManager.GetSuitProgressBySuitId(suitId, out count, out totalCount);
+            listItem.m_progBar.max = totalCount;
+            listItem.m_progBar.value = count;
+            bool haveSuit = DressUpMenuSuitDataManager.CheckHaveSuit(suitId);
+            listItem.m_unlockMask.visible = !haveSuit;
+            int status = DressUpMenuSuitDataManager.GetSuitGuideBonusStatus(suitId);
+            RedDotController.Instance.SetComRedDot(listItem.m_loaderBonusBox.target, status == ConstBonusStatus.CAN_GET, "", 12, -8);
+            if (status == ConstBonusStatus.CAN_GET)
+            {
+                listItem.m_loaderBonusBox.m_loaderBonusBox.url = "ui://FieldGuide/tujian_lw_1";
+            }
+            else
+            {
+                listItem.m_loaderBonusBox.m_loaderBonusBox.url = "ui://FieldGuide/tujian_lw_2";
+            }
+            listItem.m_bg.onClick.Clear();
+            listItem.m_bg.onClick.Add(() =>
+            {
+                if (haveSuit)
+                {
+                    ViewManager.Show<SuitShowView>(new object[] { _suitTypeId, suitId, _suitIds }, new object[] { typeof(SuitGuideDetailView).FullName, this.viewData });
+                }
+                else
+                {
+                    ViewManager.Show<SuitPartsDetailView>(suitId, new object[] { typeof(SuitGuideDetailView).FullName, this.viewData });
+                }
+            });
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/FieldGuide/SuitGuideDetailView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: cfe6c4bfb57ac274d925881866f25034
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 100 - 163
GameClient/Assets/Game/HotUpdate/Views/FieldGuide/SuitGuideView.cs

@@ -3,26 +3,19 @@ using UI.FieldGuide;
 using UI.CommonGame;
 using System.Collections.Generic;
 using UI.ClothingSynthetic;
+using UnityEngine;
 
 namespace GFGGame
 {
     public class SuitGuideView : BaseWindow
     {
         private UI_SuitGuideUI _ui;
-        // private ValueBarController _valueBarController;
-        private int _menuType = ConstSuitGuideTypeId.TYPE_1;
-        private int[] _menuTypeDataArray;
-        private List<int> _suitIds;
-        private int _suitTypeId;
+        private Dictionary<int,List<int>> _menuTypeAllDataDic;
+        private string[] _suitTypeList = { "套装", "故事" };
+        private List<UI_SuitTypeItem> _suitTypeItems;
 
         public override void Dispose()
         {
-            // if (_valueBarController != null)
-            // {
-            //     _valueBarController.Dispose();
-            //     _valueBarController = null;
-            // }
-
             if (_ui != null)
             {
                 _ui.Dispose();
@@ -38,212 +31,156 @@ namespace GFGGame
             _ui = UI_SuitGuideUI.Create();
             this.viewCom = _ui.target;
             isfullScreen = true;
+            _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("tjbg");
 
-            // _valueBarController = new ValueBarController(_ui.m_valueBar);
-
-            _ui.m_listSuit.itemRenderer = ListSuitItemRenderer;
-            _ui.m_listType.itemRenderer = ListTypeItemRenderer;
-            _ui.m_comBoxSort.items = new string[] { "默认排序", "稀有度高", "稀有度低", "收集度高", "收集度低" };
-
-
-            _ui.m_listType.onClickItem.Add(OnClickListTypeItem);
-            _ui.m_comBoxSort.onChanged.Add(OnComboBoxSortChanged);
+            _ui.m_suitTypeList.itemRenderer = RenderListSuitType;
+            _ui.m_suitTypeList.numItems = _suitTypeList.Length;
             _ui.m_btnBack.onClick.Add(OnClickBtnBack);
-            _ui.m_btnSwitch.onClick.Add(OnClickBtnSwitch);
-            _ui.m_btnHaveGot.onChanged.Add(OnClickBtnHaveGot);
-            _ui.m_btnNotGet.onChanged.Add(OnClickBtnNotGet);
-
-            _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("xc_bjbj");
+            _ui.m_suitType2Items.itemRenderer = RenderListSuitType2Item;
+            _ui.m_suitType2Items.onClickItem.Add(OnClickListSuitType2Item);
+            _ui.m_suitTypeList.onClick.Add(OnClickListSuitType);
+            InitSuitGuideType();
+            SetType(1);
 
         }
         protected override void AddEventListener()
         {
             base.AddEventListener();
             EventAgent.AddEventListener(ConstMessage.JUMP_TO_SOURCE, this.Hide);
-            EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, UpdateSuitStatus);
-            EventAgent.AddEventListener(ConstMessage.SUIT_BOX_STATUS_CHANGED, OnComboBoxSortChanged);
         }
         protected override void OnShown()
         {
             base.OnShown();
-            // _valueBarController.OnShown();
-            _ui.m_btnHaveGot.selected = true;
-            _ui.m_btnNotGet.selected = true;
-
-            UpdateListType();
-
-
         }
 
         protected override void OnHide()
         {
             base.OnHide();
-            // _valueBarController.OnHide();
-
         }
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
-            EventAgent.AddEventListener(ConstMessage.JUMP_TO_SOURCE, this.Hide);
-            EventAgent.RemoveEventListener(ConstMessage.ITEM_CHANGED, UpdateSuitStatus);
-            EventAgent.RemoveEventListener(ConstMessage.SUIT_BOX_STATUS_CHANGED, OnComboBoxSortChanged);
-        }
-        private void OnClickListTypeItem()
-        {
-            UpdateListSuit();
+            EventAgent.RemoveEventListener(ConstMessage.JUMP_TO_SOURCE, this.Hide);
         }
 
-        private void OnComboBoxSortChanged()
+        private void SetType(int type)
         {
-            UpdateListSuit();
-        }
+            _ui.m_c1.SetSelectedIndex(type - 1);
 
-        private void OnClickBtnBack()
-        {
-            // this.Hide();
-            ViewManager.GoBackFrom(ViewName.SUIT_GUIDE_VIEW);
-        }
-
-        private void OnClickBtnSwitch()
-        {
-            _menuType = 3 - _menuType;
-            UpdateListType();
-        }
-
-        private void OnClickBtnHaveGot()
-        {
-            if (!_ui.m_btnHaveGot.selected)
+            switch (type)
             {
-                _ui.m_btnNotGet.selected = true;
+                case 1:
+                    UpdateType1Progress();
+                    break;
+                case 2:
+                    _ui.m_suitType2Items.numItems = _menuTypeAllDataDic[type].Count;
+                    break;
             }
-            UpdateListSuit();
         }
 
-        private void OnClickBtnNotGet()
+        private void InitSuitGuideType()
         {
-            if (!_ui.m_btnNotGet.selected)
-            {
-                _ui.m_btnHaveGot.selected = true;
-            }
-            UpdateListSuit();
-        }
+            _suitTypeItems = new List<UI_SuitTypeItem>();
 
-        private void UpdateSuitBoxStatus(EventContext eventContext)
-        {
-            int suitId = (int)eventContext.data;
-            int num = _ui.m_listSuit.numChildren;
-            for (int i = 0; i < num; i++)
+            _menuTypeAllDataDic = new Dictionary<int, List<int>>();
+            SuitGuideMenuCfg[] menuCfgs = SuitGuideMenuCfgArray.Instance.dataArray;
+            foreach(SuitGuideMenuCfg s in menuCfgs)
             {
-                UI_CompSuitItem listItem = UI_CompSuitItem.Proxy(_ui.m_listSuit.GetChildAt(i));
-                int tempSuitId = (int)listItem.target.data;
-                if (tempSuitId == suitId)
+                if (!_menuTypeAllDataDic.ContainsKey(s.SuitGuideMenuType))
                 {
-                    UpdateSuitStatusView(listItem);
+                    _menuTypeAllDataDic.Add(s.SuitGuideMenuType, new List<int>());
                 }
-                UI_CompSuitItem.ProxyEnd();
+                _menuTypeAllDataDic[s.SuitGuideMenuType].Add(s.id);
             }
+
+            InitSuitType1Item(_ui.m_suitTypeItems.m_item1, _menuTypeAllDataDic[1][0]);
+            InitSuitType1Item(_ui.m_suitTypeItems.m_item2, _menuTypeAllDataDic[1][1]);
+            InitSuitType1Item(_ui.m_suitTypeItems.m_item3, _menuTypeAllDataDic[1][2]);
+            InitSuitType1Item(_ui.m_suitTypeItems.m_item4, _menuTypeAllDataDic[1][3]);
+            InitSuitType1Item(_ui.m_suitTypeItems.m_item5, _menuTypeAllDataDic[1][4]);
+            InitSuitType1Item(_ui.m_suitTypeItems.m_item6, _menuTypeAllDataDic[1][5]);
+            InitSuitType1Item(_ui.m_suitTypeItems.m_item7, _menuTypeAllDataDic[1][6]);
+
         }
-        private void UpdateListType()
+
+        /// <summary>
+        /// 初始化种类1
+        /// </summary>
+        /// <param name="item"></param>
+        /// <param name="typeId"></param>
+        private void InitSuitType1Item(UI_SuitTypeItem item, int typeId)
         {
-            // _ui.m_listType.RemoveChildrenToPool();
-            switch (_menuType)
+            SuitGuideMenuCfg cfg = SuitGuideMenuCfgArray.Instance.GetCfg(typeId);
+            item.m_title.text = cfg.name;
+            item.target.data = typeId;
+            item.target.onClick.Add(() =>
             {
-                case ConstSuitGuideTypeId.TYPE_1:
-                    _menuTypeDataArray = new int[] { 0, 1, 2, 3, 4, 5, 6, 7 };
-                    break;
-                default:
-                    _menuTypeDataArray = new int[] { 8, 9, 10, 11, 12, 13 };
-                    break;
-            }
-            _ui.m_listType.numItems = _menuTypeDataArray.Length;
-            _ui.m_listType.selectedIndex = 0;
-            UpdateListSuit();
+                ViewManager.Show<SuitGuideDetailView>(typeId, new object[] { ViewName.SUIT_GUIDE_VIEW, this.viewData });
+            });
+
+            _suitTypeItems.Add(item);
         }
 
-        private void ListTypeItemRenderer(int index, object item)
+        /// <summary>
+        /// 初始化种类2
+        /// </summary>
+        /// <param name="index"></param>
+        /// <param name="gObject"></param>
+        private void RenderListSuitType2Item(int index, GObject gObject)
         {
-            UI_ButtonSuitType listItem = UI_ButtonSuitType.Proxy(item as GObject);
-            int typeId = _menuTypeDataArray[index];
-            SuitGuideMenuCfg cfg = SuitGuideMenuCfgArray.Instance.GetCfg(typeId);
-            listItem.target.title = cfg.name;
-            listItem.target.data = typeId;
-            listItem.m_imgLine.visible = (index != 0);
-            UI_ButtonSuitType.ProxyEnd();
+            UI_SuitStoryItem item = UI_SuitStoryItem.Proxy(gObject);
+            SuitGuideMenuCfg cfg = SuitGuideMenuCfgArray.Instance.GetCfg(_menuTypeAllDataDic[_ui.m_c1.selectedIndex + 1][index]);
+            item.m_title.text = cfg.name;
+            int haveCount = SuitUtil.GetSuitIdList(false, true, _menuTypeAllDataDic[_ui.m_c1.selectedIndex + 1][index], 0).Count;
+            int totalCount = SuitUtil.GetSuitIdList(true, true, _menuTypeAllDataDic[_ui.m_c1.selectedIndex + 1][index], 0).Count;
+            item.m_progressNum.SetVar("value", haveCount.ToString()).SetVar("max", totalCount.ToString()).FlushVars();
+            UI_SuitStoryItem.ProxyEnd();
         }
 
-        private void UpdateListSuit()
+        private void OnClickListSuitType2Item(EventContext eventContext)
         {
-            // _ui.m_listSuit.RemoveChildrenToPool();
-            UI_ButtonSuitType listItem = UI_ButtonSuitType.Proxy(_ui.m_listType.GetChildAt(_ui.m_listType.selectedIndex));
-            _suitTypeId = (int)listItem.target.data;
-            _suitIds = SuitUtil.GetSuitIdList(_ui.m_btnNotGet.selected, _ui.m_btnHaveGot.selected, _suitTypeId, _ui.m_comBoxSort.selectedIndex);
-            _ui.m_listSuit.numItems = _suitIds.Count;
-            _ui.m_listSuit.scrollPane.ScrollTop();
-            UI_ButtonSuitType.ProxyEnd();
+            GObject obj = eventContext.data as GObject;
+            int index = _ui.m_suitType2Items.GetChildIndex(obj);
+            ViewManager.Show<SuitGuideDetailView>(_menuTypeAllDataDic[_ui.m_c1.selectedIndex + 1][index], new object[] { ViewName.SUIT_GUIDE_VIEW, this.viewData });
         }
 
-        private void ListSuitItemRenderer(int index, GObject item)
+        private void UpdateType1Progress()
         {
-            UI_CompSuitItem listItem = UI_CompSuitItem.Proxy(item);
-            int suitId = _suitIds[index];
-            SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(suitId);
-            listItem.m_txtName.text = suitCfg.name;
-            listItem.m_loaderPic.url = ResPathUtil.GetFieldGuideIconPath(suitCfg.res);
-            RarityIconController.UpdateRarityIcon(listItem.m_rarity, suitId, false, true);
-
-            listItem.target.data = suitId;
-            UpdateSuitStatusView(listItem);
-            listItem.m_loaderBonusBox.onClick.Clear();
-            listItem.m_loaderBonusBox.onClick.Add(() =>
+            for (int i = 0; i < _suitTypeItems.Count; i++)
             {
-                SuitUtil.ShowSuitGuideBonus(suitId);
-            });
-            UI_CompSuitItem.ProxyEnd();
+                int _suitTypeId = (int)_suitTypeItems[i].target.data;
+                int haveCount = SuitUtil.GetSuitIdList(false, true, _suitTypeId, 0).Count;
+                int totalCount = SuitUtil.GetSuitIdList(true, true, _suitTypeId, 0).Count;
+                _suitTypeItems[i].m_progress.target.value = haveCount;
+                _suitTypeItems[i].m_progress.target.max = totalCount;
+                _suitTypeItems[i].m_progress.m_num.SetVar("value", haveCount.ToString()).SetVar("max", totalCount.ToString()).FlushVars();
+                _suitTypeItems[i].m_progress.m_rate.SetVar("rate", FieldGuideView.ProgressCalculate(haveCount, totalCount).ToString()).FlushVars();
+            }
         }
 
-        private void UpdateSuitStatus(EventContext eventContext)
+        /// <summary>
+        /// 初始化上方选择菜单
+        /// </summary>
+        /// <param name="index"></param>
+        /// <param name="item"></param>
+        private void RenderListSuitType(int index, GObject item)
         {
-            int num = _ui.m_listSuit.numChildren;
-            for (int i = 0; i < num; i++)
-            {
-                UI_CompSuitItem listItem = UI_CompSuitItem.Proxy(_ui.m_listSuit.GetChildAt(i));
-                UpdateSuitStatusView(listItem);
-                UI_CompSuitItem.ProxyEnd();
-            }
+            UI_Button6 button6 = UI_Button6.Proxy(item);
+            button6.m_title1.text = _suitTypeList[index];
+            button6.target.title = _suitTypeList[index];
+            UI_Button6.ProxyEnd();
         }
 
-        private void UpdateSuitStatusView(UI_CompSuitItem listItem)
+        private void OnClickListSuitType(EventContext eventContext)
         {
-            int suitId = (int)listItem.target.data;
-            int count = 0;
-            int totalCount = 0;
-            DressUpMenuSuitDataManager.GetSuitProgressBySuitId(suitId, out count, out totalCount);
-            listItem.m_progBar.max = totalCount;
-            listItem.m_progBar.value = count;
-            bool haveSuit = DressUpMenuSuitDataManager.CheckHaveSuit(suitId);
-            listItem.m_imgLock.visible = listItem.m_imgLockBg.visible = !haveSuit;
-            int status = DressUpMenuSuitDataManager.GetSuitGuideBonusStatus(suitId);
-            RedDotController.Instance.SetComRedDot(listItem.target, status == ConstBonusStatus.CAN_GET, "", -8, 450);
-            if (status == ConstBonusStatus.CAN_GET)
-            {
-                listItem.m_loaderBonusBox.url = "ui://FieldGuide/tujian_lw_1";
-            }
-            else
-            {
-                listItem.m_loaderBonusBox.url = "ui://FieldGuide/tujian_lw_2";
-            }
-            listItem.m_bg.onClick.Clear();
-            listItem.m_bg.onClick.Add(() =>
-            {
-                if (haveSuit)
-                {
-                    ViewManager.Show<SuitShowView>(new object[] { _suitTypeId, suitId, _suitIds }, new object[] { ViewName.SUIT_GUIDE_VIEW, this.viewData });
-                }
-                else
-                {
-                    ViewManager.Show<SuitPartsDetailView>(suitId, new object[] { ViewName.SUIT_GUIDE_VIEW, this.viewData });
-                }
-            });
+            SetType(_ui.m_c1.selectedIndex + 1);
+        }
+
+        private void OnClickBtnBack()
+        {
+            SetType(1);
+            _ui.m_suitTypeItems.target.scrollPane.ScrollTop();
+            ViewManager.GoBackFrom(ViewName.SUIT_GUIDE_VIEW);
         }
     }
 }

BIN
GameClient/Assets/ResIn/UI/Card/Card_fui.bytes


BIN
GameClient/Assets/ResIn/UI/CommonGame/CommonGame_fui.bytes


BIN
GameClient/Assets/ResIn/UI/DressUp/DressUp_fui.bytes


BIN
GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0!a.png


BIN
GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0.png


BIN
GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0_1!a.png


BIN
GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0_1.png


BIN
GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0_2!a.png


BIN
GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0_2.png


BIN
GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_fui.bytes