Bladeren bron

第三周需求补充提交

zhangyuqian 1 jaar geleden
bovenliggende
commit
cc15d438e5
31 gewijzigde bestanden met toevoegingen van 724 en 36 verwijderingen
  1. 4 2
      GameClient/Assets/Game/HotUpdate/Controller/GameController.cs
  2. 30 1
      GameClient/Assets/Game/HotUpdate/Data/DressUpMenuSuitDataManager.cs
  3. 31 1
      GameClient/Assets/Game/HotUpdate/Data/RedDotDataManager.cs
  4. 2 2
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingSynthetic/UI_ClothingSyntheticUI.cs
  5. 99 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitComitem.cs
  6. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitComitem.cs.meta
  7. 94 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitGuideListUI.cs
  8. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitGuideListUI.cs.meta
  9. 71 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_listSuit.cs
  10. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_listSuit.cs.meta
  11. 48 13
      GameClient/Assets/Game/HotUpdate/ServerProxy/ClothingSyntheticSProxy.cs
  12. 8 0
      GameClient/Assets/Game/HotUpdate/ServerProxy/InstanceZonesSProxy.cs
  13. 18 9
      GameClient/Assets/Game/HotUpdate/Views/Card/CardSyntheticView.cs
  14. 37 6
      GameClient/Assets/Game/HotUpdate/Views/ClothingSynthetic/ClothingSyntheticView.cs
  15. 1 0
      GameClient/Assets/Game/HotUpdate/Views/CreateRole/NewRoleGetSuitView.cs
  16. 235 0
      GameClient/Assets/Game/HotUpdate/Views/FieldGuide/SuitGuideListView.cs
  17. 11 0
      GameClient/Assets/Game/HotUpdate/Views/FieldGuide/SuitGuideListView.cs.meta
  18. 2 2
      GameClient/Assets/Game/HotUpdate/Views/FieldGuide/SuitGuideView.cs
  19. BIN
      GameClient/Assets/ResIn/UI/ClothingSynthetic/ClothingSynthetic_atlas0!a.png
  20. BIN
      GameClient/Assets/ResIn/UI/ClothingSynthetic/ClothingSynthetic_atlas0.png
  21. BIN
      GameClient/Assets/ResIn/UI/ClothingSynthetic/ClothingSynthetic_fui.bytes
  22. BIN
      GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0!a.png
  23. BIN
      GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0.png
  24. BIN
      GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0_1!a.png
  25. BIN
      GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0_1.png
  26. BIN
      GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0_2!a.png
  27. BIN
      GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0_2.png
  28. BIN
      GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0_3!a.png
  29. BIN
      GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0_3.png
  30. BIN
      GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_atlas0_4.png
  31. BIN
      GameClient/Assets/ResIn/UI/FieldGuide/FieldGuide_fui.bytes

+ 4 - 2
GameClient/Assets/Game/HotUpdate/Controller/GameController.cs

@@ -198,9 +198,10 @@ namespace GFGGame
                         //ViewManager.Show<StoryChapterView>(StudioDataManager.Instance.luckyBoxFilingChapterId, new object[] { typeof(ActivityThemeLuckyBoxView).FullName, this.viewData });
 
                         ViewManager.Show<StoryChapterView>(MainStoryDataManager.currentChapterCfgId);
-                        //if(true)
+                        ////新玩家选择套装
+                        //if (RoleInfoManager.Instance.NewRoleSuitStatus == false)
                         //{
-                        //    ViewManager.Show<NewRoleGetSuitView>();
+                            //ViewManager.Show<NewRoleGetSuitView>();
                         //}
                     }
                 }
@@ -272,6 +273,7 @@ namespace GFGGame
             LeagueSproxy.GetTeapartyInfos().Coroutine();
             LeagueSproxy.GetTeapartyMatchingInfos(RoleDataManager.roleId).Coroutine();
             ActivitySProxy.ReqGetActivitySignInfos().Coroutine();
+            //RoleInfoSProxy.ReqNewRoleGetSuitStatus().Coroutine();
 
             int storageAutoPlay = StorageDataManager.Instance.GetStorageValue(ConstStorageId.STORAGE_AUTO_PLAY);
             FightDataManager.Instance.autoPlay = storageAutoPlay <= 0 ? false : true;

+ 30 - 1
GameClient/Assets/Game/HotUpdate/Data/DressUpMenuSuitDataManager.cs

@@ -29,6 +29,8 @@ namespace GFGGame
 
         private static Dictionary<int, int> _suitSyntheticBoxBonusStatus = new Dictionary<int, int>();
 
+        public static Dictionary<int, int> _suitSyntheticRewardStatus = new Dictionary<int, int>();
+
         public static void InitData()
         {
             _suitIDList.Clear();
@@ -43,6 +45,7 @@ namespace GFGGame
             {
                 _suitGuideBoxBonusStatus.Clear();
                 _suitSyntheticBoxBonusStatus.Clear();
+                _suitSyntheticRewardStatus.Clear();
                 foreach (SuitInfoProto suitInfo in suitInfoList)
                 {
                     SuitFosterData suitFosterData = new SuitFosterData()
@@ -58,6 +61,9 @@ namespace GFGGame
                     _suitGuideBoxBonusStatus.Add(suitInfo.SuitId, suitInfo.GuideBoxBonusState);
                     //合成
                     _suitSyntheticBoxBonusStatus.Add(suitInfo.SuitId, suitInfo.SyntheticBoxBonusState);
+                    //套装合成奖励2
+                    _suitSyntheticRewardStatus.Add(suitInfo.SuitId,suitInfo.BringTogetherRewardStatus);
+
                     _progressBySuitIdDic[suitInfo.SuitId] = suitInfo.PartsCount;
                     if (suitInfo.CollectedAll)
                     {
@@ -239,7 +245,30 @@ namespace GFGGame
             _suitSyntheticBoxBonusStatus[suitId] = ConstBonusStatus.GOT;
             EventAgent.DispatchEvent(ConstMessage.SUIT_BOX_STATUS_CHANGED, suitId);
         }
-
+        //套装集齐奖励2
+        public static void SetSuitSyntheticRewardStatus(int suitId)
+        {
+            if(_suitSyntheticRewardStatus.ContainsKey(suitId))
+            {
+                _suitSyntheticRewardStatus[suitId] = ConstBonusStatus.GOT;
+            }
+        }
+        public static int GetSuitSyntheticRewardStatus(int suitId)
+        {
+            int status = ConstBonusStatus.CAN_NOT_GET;
+            if (_suitSyntheticRewardStatus.ContainsKey(suitId))
+            {
+                status = _suitSyntheticRewardStatus[suitId];
+            }
+            if (status == ConstBonusStatus.CAN_NOT_GET)
+            {
+                if (CheckHaveSuit(suitId))
+                {
+                    status = ConstBonusStatus.CAN_GET;
+                }
+            }
+            return status;
+        }
         //检查套装是否有动作资源
         public static bool CheckSuitHasActionRes(int suitId)
         {

+ 31 - 1
GameClient/Assets/Game/HotUpdate/Data/RedDotDataManager.cs

@@ -515,7 +515,7 @@ namespace GFGGame
             List<SuitCfg> suitCfgs = SuitCfgArray.Instance.GetCfgsBysyntheticType(tab);
             for (int i = 0; i < suitCfgs.Count; i++)
             {
-                if (GetClothingSyntheticBonusRed(suitCfgs[i].id)) return true;
+                if (GetClothingSyntheticBonusRed(suitCfgs[i].id) || GetClothingSyntheticRewardRed(suitCfgs[i].id)) return true;
                 bool isLevelPass = InstanceZonesDataManager.CheckLevelPass(suitCfgs[i].syntheticStoryLevelId);
                 if (!isLevelPass) continue;
                 if (GetClothingSyntheticRed(suitCfgs[i].id)) return true;
@@ -571,6 +571,36 @@ namespace GFGGame
         }
 
         /// <summary>
+        /// 套装合成奖励2红点
+        /// </summary>
+        /// <param name="suitId"></param>
+        /// <returns></returns>
+        public bool GetClothingSyntheticRewardRed(int suitId)
+        {
+            bool isLock = false;
+            int status = DressUpMenuSuitDataManager.GetSuitSyntheticRewardStatus(suitId);
+
+            SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(suitId);
+            if (suitCfg.syntheticStoryLevelId > 0)
+            {
+                bool isLevelPass = InstanceZonesDataManager.CheckLevelPass(suitCfg.syntheticStoryLevelId);
+                if (!isLevelPass)
+                {
+                    isLock = true;
+                }
+            }
+            if (suitCfg.syntheticPreSuitId > 0)
+            {
+                bool hasPreSuit = DressUpMenuSuitDataManager.CheckHaveSuit(suitCfg.syntheticPreSuitId);
+                if (!hasPreSuit)
+                {
+                    isLock = true;
+                }
+            }
+            return status == ConstBonusStatus.CAN_GET && !isLock;
+        }
+
+        /// <summary>
         /// 合成-服装部件红点
         /// </summary>
         /// <param name="itemId"></param>

+ 2 - 2
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingSynthetic/UI_ClothingSyntheticUI.cs

@@ -22,7 +22,7 @@ namespace UI.ClothingSynthetic
         public GButton m_btnBack;
         public GButton m_btnHome;
         public GComponent m_valueBar;
-        public GLoader m_cardSyntheticBtn;
+        public GButton m_cardSyntheticBtn;
         public Transition m_hide;
         public Transition m_show;
         public const string URL = "ui://4f294tdkj5391";
@@ -87,7 +87,7 @@ namespace UI.ClothingSynthetic
             m_btnBack = (GButton)comp.GetChild("btnBack");
             m_btnHome = (GButton)comp.GetChild("btnHome");
             m_valueBar = (GComponent)comp.GetChild("valueBar");
-            m_cardSyntheticBtn = (GLoader)comp.GetChild("cardSyntheticBtn");
+            m_cardSyntheticBtn = (GButton)comp.GetChild("cardSyntheticBtn");
             m_hide = comp.GetTransition("hide");
             m_show = comp.GetTransition("show");
         }

+ 99 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitComitem.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_SuitComitem
+    {
+        public GComponent target;
+        public Controller m_c1;
+        public Controller m_state;
+        public GGraph m_holderBg;
+        public GLoader m_bg;
+        public GLoader m_loaderPic;
+        public UI_BonusBox m_loaderBonusBox;
+        public GProgressBar m_progBar;
+        public GLoader m_rarity;
+        public GTextField m_txtName;
+        public GImage m_unlockMask;
+        public const string URL = "ui://vqq9h9h4xfki83";
+        public const string PACKAGE_NAME = "FieldGuide";
+        public const string RES_NAME = "SuitComitem";
+        private static UI_SuitComitem _proxy;
+
+        public static UI_SuitComitem Create(GObject gObject = null)
+        {
+            var ui = new UI_SuitComitem();
+            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_SuitComitem Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_SuitComitem();
+            }
+            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_state = comp.GetController("state");
+            m_holderBg = (GGraph)comp.GetChild("holderBg");
+            m_bg = (GLoader)comp.GetChild("bg");
+            m_loaderPic = (GLoader)comp.GetChild("loaderPic");
+            m_loaderBonusBox = (UI_BonusBox)UI_BonusBox.Create(comp.GetChild("loaderBonusBox"));
+            m_progBar = (GProgressBar)comp.GetChild("progBar");
+            m_rarity = (GLoader)comp.GetChild("rarity");
+            m_txtName = (GTextField)comp.GetChild("txtName");
+            m_unlockMask = (GImage)comp.GetChild("unlockMask");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_state = null;
+            m_holderBg = null;
+            m_bg = null;
+            m_loaderPic = null;
+            m_loaderBonusBox.Dispose();
+            m_loaderBonusBox = null;
+            m_progBar = null;
+            m_rarity = null;
+            m_txtName = null;
+            m_unlockMask = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

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

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

+ 94 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_SuitGuideListUI.cs

@@ -0,0 +1,94 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldGuide
+{
+    public partial class UI_SuitGuideListUI
+    {
+        public GComponent target;
+        public GLoader m_loaBg;
+        public GButton m_btnBack;
+        public UI_listSuit m_listSuitCom;
+        public GTextField m_title;
+        public GButton m_btnSearch;
+        public UI_ProgressBar4 m_progress;
+        public Transition m_In;
+        public Transition m_Refresh;
+        public const string URL = "ui://vqq9h9h4iufg81";
+        public const string PACKAGE_NAME = "FieldGuide";
+        public const string RES_NAME = "SuitGuideListUI";
+        private static UI_SuitGuideListUI _proxy;
+
+        public static UI_SuitGuideListUI Create(GObject gObject = null)
+        {
+            var ui = new UI_SuitGuideListUI();
+            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_SuitGuideListUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_SuitGuideListUI();
+            }
+            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_listSuitCom = (UI_listSuit)UI_listSuit.Create(comp.GetChild("listSuitCom"));
+            m_title = (GTextField)comp.GetChild("title");
+            m_btnSearch = (GButton)comp.GetChild("btnSearch");
+            m_progress = (UI_ProgressBar4)UI_ProgressBar4.Create(comp.GetChild("progress"));
+            m_In = comp.GetTransition("In");
+            m_Refresh = comp.GetTransition("Refresh");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_loaBg = null;
+            m_btnBack = null;
+            m_listSuitCom.Dispose();
+            m_listSuitCom = null;
+            m_title = null;
+            m_btnSearch = null;
+            m_progress.Dispose();
+            m_progress = null;
+            m_In = null;
+            m_Refresh = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

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

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

+ 71 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldGuide/UI_listSuit.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_listSuit
+    {
+        public GComponent target;
+        public GList m_listSuit;
+        public const string URL = "ui://vqq9h9h4iufg82";
+        public const string PACKAGE_NAME = "FieldGuide";
+        public const string RES_NAME = "listSuit";
+        private static UI_listSuit _proxy;
+
+        public static UI_listSuit Create(GObject gObject = null)
+        {
+            var ui = new UI_listSuit();
+            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_listSuit Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_listSuit();
+            }
+            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_listSuit = (GList)comp.GetChild("listSuit");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_listSuit = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

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

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

+ 48 - 13
GameClient/Assets/Game/HotUpdate/ServerProxy/ClothingSyntheticSProxy.cs

@@ -30,24 +30,59 @@ namespace GFGGame
             {
                 if (response.Error == ErrorCode.ERR_Success)
                 {
-                    ItemCfg itemcfg = ItemCfgArray.Instance.GetCfg(itemId);
-                    if(itemcfg.subType == 5)
-                    {
-                        ViewManager.Show<LuckyBoxNewCardView>(itemId);
-                    }
-                    else
-                    {
-                        int[][] array = new int[][]
-                                        {
-                                            new int[] { itemId, 1 }
-                                        };
-                        BonusController.TryShowBonusList(array);
-                    }
+                    BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(response.RewardList));
                     return true;
                 }
             }
             return true;
 
         }
+
+        public static async ETTask<int> GetCardSyntheticCount(int cardId)
+        {
+            var response = (M2C_GetCardSyntheticNum)await MessageHelper.SendToServer(new C2M_GetCardSyntheticNum() { ItemId = cardId });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    return response.Num;
+                }
+            }
+            return -1;
+
+        }
+        //领取套装集齐奖励
+        public static async ETTask<bool> GetSuitGetReward(int suitId)
+        {
+            var response = (M2C_BringTogetherReward)await MessageHelper.SendToServer(new C2M_GetBringTogetherReward() { SuitId = suitId });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    DressUpMenuSuitDataManager.SetSuitSyntheticRewardStatus(suitId);
+                    SuitCfg item = SuitCfgArray.Instance.GetCfg(suitId);
+                    ViewManager.Show<LuckyBoxNewCardView>(item.SuitCollectrewardArr[0][0]);
+                    //BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(response.RewardList));
+                    return true;
+                }
+            }
+            return true;
+
+        }
+    }
+    public class NoticeSuitGetRewardChange : AMHandler<M2C_PushBringTogetherRewardState>
+    {
+        protected override async ETTask Run(Session session, M2C_PushBringTogetherRewardState message)
+        {
+            if(DressUpMenuSuitDataManager._suitSyntheticRewardStatus.ContainsKey(message.SuitId))
+            {
+                DressUpMenuSuitDataManager._suitSyntheticRewardStatus[message.SuitId] = message.BringTogetherRewardStatus;
+            }
+            else
+            {
+                DressUpMenuSuitDataManager._suitSyntheticRewardStatus.Add(message.SuitId, message.BringTogetherRewardStatus);
+            }
+            await ETTask.CompletedTask;
+        }
     }
 }

+ 8 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/InstanceZonesSProxy.cs

@@ -56,6 +56,14 @@ namespace GFGGame
                             }
                         }
                     }
+                    //if(storyLevelCfg.id == 100001001)
+                    //{
+                        ////新玩家选择套装
+                        //if (RoleInfoManager.Instance.NewRoleSuitStatus == false)
+                        //{
+                            //ViewManager.Show<NewRoleGetSuitView>();
+                        //}
+                    //}
                     EventAgent.DispatchEvent(ConstMessage.STORY_LEVEL_CHANGE);
                     return;
                 }

+ 18 - 9
GameClient/Assets/Game/HotUpdate/Views/Card/CardSyntheticView.cs

@@ -19,6 +19,7 @@ namespace GFGGame
         private int _chapterID;
         private int _itemId;
         private int[] _items;
+        private int cardSyntheticCount;
 
         private List<ItemData> _materiarsOfSelectedItem;
         private ItemCfg _cardItem;
@@ -68,7 +69,7 @@ namespace GFGGame
             base.AddEventListener();
             EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, OnItemNumChanged);
         }
-        protected override void OnShown()
+        protected async override void OnShown()
         {
             base.OnShown();
             _cardId = 0;
@@ -83,7 +84,8 @@ namespace GFGGame
 
             _valueBarController.OnShown();
             _ui.m_loaBg2.url = ResPathUtil.GetBgImgPath("hc_bj_1");
-
+            var response = await ClothingSyntheticSProxy.GetCardSyntheticCount(_cardId);
+            cardSyntheticCount = response;
             UpdateView();
 
             Timers.inst.AddUpdate(CheckGuide);
@@ -111,7 +113,7 @@ namespace GFGGame
         {
             bool isfirst;
             //这里应该是制作卡牌次数
-            if (ItemDataManager.GetItemNum(_cardId) > 0)
+            if (cardSyntheticCount > 0)
             {
                 isfirst = false;
             }
@@ -119,7 +121,7 @@ namespace GFGGame
             {
                 isfirst = true;
             }
-            if (ItemDataManager.GetItemNum(_cardId) >= _cardItem.syntheticTimes)
+            if (cardSyntheticCount >= _cardItem.syntheticTimes)
             {
                 isfirst = false;
                 PromptController.Instance.ShowFloatTextPrompt("制作已上限");
@@ -158,7 +160,7 @@ namespace GFGGame
         {
             UpdateName(_cardItem.name);
             _ui.m_comImgCard.m_ComCardImgRes.m_loaCard.url = ResPathUtil.GetCardPath(_cardItem.res);
-            _ui.m_timesText.text = string.Format("合成次数:{0}/{1}", ItemDataManager.GetItemNum(_cardId), _cardItem.syntheticTimes);
+            _ui.m_timesText.text = string.Format("合成次数:{0}/{1}", cardSyntheticCount, _cardItem.syntheticTimes);
             UpdateSelectedItemInfo();
         }
 
@@ -187,7 +189,7 @@ namespace GFGGame
 
             _ui.m_listMaterias.selectedIndex = 0;
             //这里应该是制作卡牌次数
-            _ui.m_btnProduction.grayed = ItemDataManager.GetItemNum(_cardId) > clothingSyntheticCfg.syntheticTimes;
+            _ui.m_btnProduction.grayed = cardSyntheticCount > clothingSyntheticCfg.syntheticTimes;
         }
 
         private void UpdateName(string name)
@@ -272,12 +274,19 @@ namespace GFGGame
         {
             GameController.GoBackToMainView();
         }
-        private void OnItemNumChanged()
+        private async void OnItemNumChanged()
         {
             _ui.m_listMaterias.numItems = _materiarsOfSelectedItem.Count;
+            var response = await ClothingSyntheticSProxy.GetCardSyntheticCount(_cardId);
+            cardSyntheticCount = response;
             //这里应该是制作卡牌次数
-            _ui.m_btnProduction.grayed = ItemDataManager.GetItemNum(_cardId) > _cardItem.syntheticTimes;
-            _ui.m_timesText.text = string.Format("合成次数:{0}/{1}", ItemDataManager.GetItemNum(_cardId), _cardItem.syntheticTimes);
+            _ui.m_btnProduction.grayed = cardSyntheticCount > _cardItem.syntheticTimes;
+            _ui.m_timesText.text = string.Format("合成次数:{0}/{1}", cardSyntheticCount, _cardItem.syntheticTimes);
+        }
+        private async void GetCardSyntheticCount(int cardID)
+        {
+            var response = await ClothingSyntheticSProxy.GetCardSyntheticCount(cardID);
+            cardSyntheticCount = response;
         }
         private void CheckGuide(object param)
         {

+ 37 - 6
GameClient/Assets/Game/HotUpdate/Views/ClothingSynthetic/ClothingSyntheticView.cs

@@ -139,7 +139,7 @@ namespace GFGGame
             _valueBarController.OnShown();
             _ui.m_loaBg2.url = ResPathUtil.GetBgImgPath("hc_bj_1");
             UpdateClothingList(false);
-
+    
             Timers.inst.AddUpdate(CheckGuide);
         }
 
@@ -211,10 +211,6 @@ namespace GFGGame
 
         }
 
-        private void OnClickBtnCardSyntheticView()
-        {
-            ViewManager.Show<CardSyntheticView>(new object[] { _cardID, _selectedItemId });
-        }
         private void ListClothingItemRender(int index, GObject item)
         {
             UI_ClothingListItem listItem = UI_ClothingListItem.Proxy(item);
@@ -348,6 +344,7 @@ namespace GFGGame
             DressUpMenuSuitDataManager.chooseClothing = _selectedItemId;
             UpdateRole(tween);
             UpdateSelectedItemInfo();
+            UpdateCardSyntheticBtn();
         }
 
         private void UpdateSelectedItemInfo()
@@ -535,14 +532,48 @@ namespace GFGGame
             int count = ItemCfgArray.Instance.GetCfgsBysuitId(_suitId).Count - 1;
             ItemCfg item = ItemCfgArray.Instance.GetCfgsBysuitId(_suitId)[count];
             _cardID = item.id;
-            if(item.syntheticTimes > 0 )
+            int rewardStatus = DressUpMenuSuitDataManager.GetSuitSyntheticRewardStatus(_suitId);
+
+            if(item.syntheticTimes > 0)
             {
                 _ui.m_cardSyntheticBtn.visible = true;
+                if(rewardStatus == 1)
+                {
+                    _ui.m_cardSyntheticBtn.icon = ResPathUtil.GetIconPath(ItemCfgArray.Instance.GetCfg(_cardID).res,"png");
+                    RedDotController.Instance.SetComRedDot(_ui.m_cardSyntheticBtn, true, "", -18, 20);
+                }
+                else
+                {
+                    _ui.m_cardSyntheticBtn.icon = "ui://ClothingSynthetic/kphc_huimeng";
+                    RedDotController.Instance.SetComRedDot(_ui.m_cardSyntheticBtn, (rewardStatus == 1), "", -18, 20);
+                }
             }
             else
             {
                 _ui.m_cardSyntheticBtn.visible = false;
             }
+
+        }
+
+        private async void OnClickBtnCardSyntheticView()
+        {
+            int rewardStatus = DressUpMenuSuitDataManager.GetSuitSyntheticRewardStatus(_suitId);
+            if (DressUpMenuSuitDataManager.CheckHaveSuit(_suitId))
+            {
+                if(rewardStatus == 1)
+                {
+                    bool result = await ClothingSyntheticSProxy.GetSuitGetReward(_suitId);
+                    UpdateCardSyntheticBtn();
+                }
+                else
+                {
+                    ViewManager.Show<CardSyntheticView>(new object[] { _cardID, _selectedItemId });
+                }  
+            }
+            else
+            {
+                PromptController.Instance.ShowFloatTextPrompt("集齐套装后可领取卡牌奖励");
+            }  
         }
     }
 }

+ 1 - 0
GameClient/Assets/Game/HotUpdate/Views/CreateRole/NewRoleGetSuitView.cs

@@ -80,6 +80,7 @@ namespace GFGGame
             .SetRightButton(true, "确定", async (object data) =>
             {
                 var result = await RoleInfoSProxy.ReqNewRoleGetSuit(suitID);
+                this.Hide();
             });
         }
         protected override void OnHide()

+ 235 - 0
GameClient/Assets/Game/HotUpdate/Views/FieldGuide/SuitGuideListView.cs

@@ -0,0 +1,235 @@
+using FairyGUI;
+using UI.FieldGuide;
+using UI.CommonGame;
+using System.Collections.Generic;
+using UI.ClothingSynthetic;
+using UnityEngine;
+using System;
+
+namespace GFGGame
+{
+    public class SuitGuideListView : BaseWindow
+    {
+        private UI_SuitGuideListUI _ui;
+        private List<int> _suitIds;
+        private int _suitTypeId;
+        private Dictionary<int, EffectUI> _effectUIDic = new Dictionary<int, EffectUI>();
+        public override void Dispose()
+        {
+            foreach (var v in _effectUIDic)
+            {
+                EffectUIPool.Recycle(v.Value);
+            }
+            _effectUIDic.Clear();
+
+            if (_ui != null)
+            {
+                _ui.Dispose();
+                _ui = null;
+            }
+            base.Dispose();
+        }
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_SuitGuideListUI.PACKAGE_NAME;
+            _ui = UI_SuitGuideListUI.Create();
+            this.viewCom = _ui.target;
+            isfullScreen = true;
+            isReturnView = true;
+
+            _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("tjbg");
+
+            _ui.m_listSuitCom.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);
+            EventAgent.AddEventListener(ConstMessage.DRESS_FILTER_RESET, ResetFilter);
+        }
+        protected override void OnShown()
+        {
+            base.OnShown();
+            _suitTypeId = (int)viewData;
+            UpdateListSuit();
+            if (backRefresh)
+            {
+                _ui.m_In.Play();
+            }
+        }
+
+        protected override void OnHide()
+        {
+            base.OnHide();
+
+            DressUpMenuItemDataManager.Clear();
+
+            // 清空服装过滤界面选择
+            EventAgent.DispatchEvent(ConstMessage.DRESS_FILTER_RESET_ALL);
+        }
+        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);
+            EventAgent.RemoveEventListener(ConstMessage.DRESS_FILTER_RESET, ResetFilter);
+
+        }
+
+        private void FilterItems(EventContext context)
+        {
+            UpdateListSuit();
+
+            if (context.data.ToString() == ConstMessage.DRESS_SEARCH)
+            {
+                _suitIds = DressUpMenuItemDataManager.DressSearch(_suitIds, DressFilterItemType.Suit);
+            }
+            else if (context.data.ToString() == ConstMessage.DRESS_FILTER)
+            {
+                _suitIds = DressUpMenuItemDataManager.DressFilter(_suitIds, DressFilterItemType.Suit);
+            }
+
+            ViewManager.Hide<ModalStatusView>();
+            _ui.m_listSuitCom.m_listSuit.numItems = _suitIds.Count;
+            UpdateProgress();
+            _ui.m_Refresh.Play();
+
+        }
+
+        private void OnClickBtnBack()
+        {
+            Hide();
+        }
+
+        private void OnClickBtnSearch()
+        {
+            ViewManager.Show<DressFilterView>(new object[] { 0, 2 });
+        }
+
+        private void UpdateListSuit()
+        {
+            _suitIds = SuitUtil.GetSuitIdList(true, true, _suitTypeId, 0);
+            UpdateProgress();
+        }
+
+        private void UpdateProgress()
+        {
+            int haveCount = SuitUtil.GetHaveSuitCount(_suitIds);
+            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();
+            if (totalCount > 0)
+            {
+                _ui.m_progress.m_rate.SetVar("rate", FieldGuideView.ProgressCalculate(haveCount, totalCount).ToString()).FlushVars();
+            }
+            else
+            {
+                _ui.m_progress.m_rate.SetVar("rate", "0").FlushVars();
+            }
+
+
+            foreach (var v in _effectUIDic)
+            {
+                EffectUIPool.Recycle(v.Value);
+            }
+            _effectUIDic.Clear();
+
+            _ui.m_listSuitCom.m_listSuit.numItems = _suitIds.Count;
+            _ui.m_listSuitCom.m_listSuit.scrollPane.ScrollTop();
+        }
+
+        private void RenderListSuitItem(int index, GObject item)
+        {
+            UI_SuitComitem listItem = UI_SuitComitem.Proxy(item);
+            int suitId = _suitIds[index];
+            SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(suitId);
+
+            if ((suitCfg.rarity - 1) == 4)
+            {
+                bool haveSuit = DressUpMenuSuitDataManager.CheckHaveSuit(suitId);
+                if (haveSuit && !_effectUIDic.ContainsKey(index))
+                {
+                    _effectUIDic.Add(index, EffectUIPool.CreateEffectUI(listItem.m_holderBg, "ui_KP", "KP_Other_Gold_Frame"));
+                }
+            }
+
+            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;
+            listItem.m_loaderBonusBox.target.onClick.Clear();
+            listItem.m_loaderBonusBox.target.onClick.Add(() =>
+            {
+                SuitUtil.ShowSuitGuideBonus(suitId);
+            });
+            UI_SuitComitem.ProxyEnd();
+        }
+
+        private void UpdateSuitStatus(EventContext eventContext)
+        {
+            int num = _ui.m_listSuitCom.m_listSuit.numChildren;
+            for (int i = 0; i < num; i++)
+            {
+                UI_CompSuitItem listItem = UI_CompSuitItem.Proxy(_ui.m_listSuitCom.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_state.selectedIndex = (haveSuit ? 0 : 1);
+            int status = DressUpMenuSuitDataManager.GetSuitGuideBonusStatus(suitId);
+            RedDotController.Instance.SetComRedDot(listItem.m_loaderBonusBox.target, status == ConstBonusStatus.CAN_GET, "", -3, -1);
+            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 }, false, false);
+                }
+                else
+                {
+                    ViewManager.Show<SuitPartsDetailView>(suitId);
+                }
+            });
+        }
+
+        private void ResetFilter()
+        {
+            UpdateListSuit();
+        }
+    }
+}

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

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

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

@@ -163,7 +163,7 @@ namespace GFGGame
             item.m_icon.url = string.Format("ui://FieldGuide/tj_tz_{0}", typeId);
             item.target.onClick.Add(() =>
             {
-                ViewManager.Show<SuitGuideDetailView>(typeId, false, false);
+                ViewManager.Show<SuitGuideListView>(typeId, false, false);
             });
 
             _suitTypeItems.Add(item);
@@ -206,7 +206,7 @@ namespace GFGGame
         {
             GObject obj = eventContext.data as GObject;
             int index = _ui.m_suitType2Items.GetChildIndex(obj);
-            ViewManager.Show<SuitGuideDetailView>(_menuTypeAllDataDic[_ui.m_c1.selectedIndex + 1][index], false, false);
+            ViewManager.Show<SuitGuideDetailView>(_menuTypeAllDataDic[_ui.m_c1.selectedIndex + 1][index], false, false);     
         }
 
         private void OnClickBtnBack()

BIN
GameClient/Assets/ResIn/UI/ClothingSynthetic/ClothingSynthetic_atlas0!a.png


BIN
GameClient/Assets/ResIn/UI/ClothingSynthetic/ClothingSynthetic_atlas0.png


BIN
GameClient/Assets/ResIn/UI/ClothingSynthetic/ClothingSynthetic_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_atlas0_3!a.png


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


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


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