zhaoyang 3 년 전
부모
커밋
9600e6346a

+ 28 - 7
GameClient/Assets/Editor/Excel/Scanner/ItemApproachScanner.cs

@@ -19,7 +19,7 @@ namespace GFGEditor
         public static void startScan()
         {
             ItemCfg[] dataArray = ItemCfgArray.Instance.dataArray;
-            GetApproachCall[] actions = new GetApproachCall[] { GetClothingShopApproach, GetZhaiXingApproach, GetStoryLevelApproach, GetClothingSyntheticApproach, GetSuitGuideApproach, GetSuitSyntheticApproach };
+            GetApproachCall[] actions = new GetApproachCall[] { GetClothingShopApproach, GetZhaiXingApproach, GetStoryLevelApproach, GetClothingSyntheticApproach, GetSuitGuideApproach, GetSuitSyntheticApproach, GetClothingDecomposeApproach };
             Dictionary<SuitCfg, List<int>> suitDic = new Dictionary<SuitCfg, List<int>>();
             int suitPartTotalCount = 0;
             foreach (ItemCfg cfg in dataArray)
@@ -73,12 +73,12 @@ namespace GFGEditor
                 return;
             }
             var suitCfg = SuitCfgArray.Instance.GetCfg(itemCfg.suitId);
-            if(suitCfg == null)
+            if (suitCfg == null)
             {
                 return;
             }
             suitDic.TryGetValue(suitCfg, out var partsList);
-            if(partsList == null)
+            if (partsList == null)
             {
                 partsList = new List<int>();
                 suitDic[suitCfg] = partsList;
@@ -137,6 +137,27 @@ namespace GFGEditor
             }
             return null;
         }
+        /// <summary>
+        /// 尝试获取服装分解产出途径
+        /// </summary>
+        /// <param name="itemId"></param>
+        /// <returns></returns>
+        private static string GetClothingDecomposeApproach(int itemId)
+        {
+            DecomposeCfgArray manager = DecomposeCfgArray.Instance;
+            DecomposeCfg[] dataArray = manager.dataArray;
+            foreach (DecomposeCfg cfg in dataArray)
+            {
+                for (int i = 0; i < cfg.itemsArr.Length; i++)
+                {
+                    if (cfg.itemsArr[i][0] == itemId)
+                    {
+                        return "FU_ZHUANG_DECOMPOSE";
+                    }
+                }
+            }
+            return null;
+        }
 
         /// <summary>
         /// 尝试获取摘星(抽奖)产出途径
@@ -200,20 +221,20 @@ namespace GFGEditor
         private static string GetClothingSyntheticApproach(int itemId)
         {
             var itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
-            if(itemCfg == null)
+            if (itemCfg == null)
             {
                 return null;
             }
-            if(itemCfg.suitId <= 0)
+            if (itemCfg.suitId <= 0)
             {
                 return null;
             }
             var suitCfg = SuitCfgArray.Instance.GetCfg(itemCfg.suitId);
-            if(suitCfg == null)
+            if (suitCfg == null)
             {
                 return null;
             }
-            if(suitCfg.syntheticType <= 0)
+            if (suitCfg.syntheticType <= 0)
             {
                 return null;
             }

+ 4 - 0
GameClient/Assets/Game/HotUpdate/Constant/ConstFunctionId.cs

@@ -10,6 +10,10 @@ namespace GFGGame
         /// </summary>
         public const string FU_ZHUANG_DIAN = "FU_ZHUANG_DIAN";
         /// <summary>
+        /// 服装分解
+        /// </summary>
+        public const string FU_ZHUANG_DECOMPOSE = "FU_ZHUANG_DECOMPOSE";
+        /// <summary>
         /// 剧情关卡
         /// </summary>
         public const string JU_QING_GUAN_QIA = "JU_QING_GUAN_QIA";

+ 7 - 1
GameClient/Assets/Game/HotUpdate/Controller/GameController.cs

@@ -220,12 +220,13 @@ namespace GFGGame
             DailyTaskSProxy.ReqDailyTaskInfos().Coroutine();
             ActivitySProxy.ReqDailyLoginInfos().Coroutine();
             NoticeSProxy.ReqSystemNoticeList().Coroutine();
-            MailSProxy.ReqMailCount().Coroutine();
+
             EquipDataCache.cacher.autoPlay = StorageDataManager.Instance.GetStorageValue(ConstStorageId.STORAGE_AUTO_PLAY) <= 0 ? false : true;
             EquipDataCache.cacher.fightSpeed = StorageDataManager.Instance.GetStorageValue(ConstStorageId.STORAGE_AUTO_PLAY_SPEED) <= 1 ? 1 : StorageDataManager.Instance.GetStorageValue(ConstStorageId.STORAGE_AUTO_PLAY_SPEED);
             GameGlobal.skipCheckOpen = StorageDataManager.Instance.GetStorageValue(ConstStorageId.SKIP_CHECK_OPEN) <= 0 ? false : true;
 
 
+
             bool result = await FieldSProxy.ReqFieldInstanceInfos();
             if (result && FieldDataManager.Instance.fieldInfos.hasBonus)
             {
@@ -235,6 +236,11 @@ namespace GFGGame
                     ViewManager.Show<FieldFightEndView>();
                 }
             }
+            bool result2 = await MailSProxy.ReqMailCount();
+            if (result2)
+            {
+                MailSProxy.ReqMailList(0, MailDataManager.Instance.TotolCount, true).Coroutine();
+            }
         }
     }
 }

+ 22 - 19
GameClient/Assets/Game/HotUpdate/Data/MailDataManager.cs

@@ -40,34 +40,40 @@ namespace GFGGame
             get { return _startIndex; }
             set { _startIndex = value; }
         }
-        public Dictionary<long, MailInfo> mailInfoDic = new Dictionary<long, MailInfo>();
+        public Dictionary<long, MailInfo> _mailInfoDic = new Dictionary<long, MailInfo>();
+        public Dictionary<long, MailInfo> MailInfoDic
+        {
+            get
+            {
+                return _mailInfoDic;
+            }
+        }
 
         public List<MailInfo> mailInfos = new List<MailInfo>();
         public void RefreshMailInfoDic(bool sort)
         {
             if (sort)
             {
-                mailInfoDic.Clear();
+                _mailInfoDic.Clear();
             }
         }
 
         public void UpdateMainInfoDic(long mailId, MailInfo mailInfo)
         {
-            if (!mailInfoDic.ContainsKey(mailId))
+            if (!_mailInfoDic.ContainsKey(mailId))
             {
-                mailInfoDic.Add(mailId, mailInfo);
+                _mailInfoDic.Add(mailId, mailInfo);
             }
             else
             {
-                mailInfoDic[mailId] = mailInfo;
+                _mailInfoDic[mailId] = mailInfo;
             }
         }
         public void UpdateMailContent(long mailId, int state, string content = "", List<ItemData> rewards = null)
         {
-            mailInfoDic[mailId].state = state;
-            if (content != "") mailInfoDic[mailId].content = content;
-            if (rewards != null) mailInfoDic[mailId].rewards = rewards;
-
+            _mailInfoDic[mailId].state = state;
+            if (content != "") _mailInfoDic[mailId].content = content;
+            if (rewards != null) _mailInfoDic[mailId].rewards = rewards;
         }
 
 
@@ -76,8 +82,8 @@ namespace GFGGame
             List<MailInfo> mailInfos = new List<MailInfo>();
             for (int i = 0; i < count; i++)
             {
-                if (index + i + 1 > mailInfoDic.Count) break;
-                MailInfo mailInfo = mailInfoDic.ElementAt(index + i).Value;
+                if (index + i + 1 > _mailInfoDic.Count) break;
+                MailInfo mailInfo = _mailInfoDic.ElementAt(index + i).Value;
                 mailInfos.Add(mailInfo);
             }
             return mailInfos;
@@ -91,14 +97,11 @@ namespace GFGGame
         /// <returns></returns>
         public MailInfo GetMailInfoById(long mailId)
         {
-            // for (int i = 0; i < mailInfos.Count; i++)
-            // {
-            //     if (mailInfos[i].mailId == mailId)
-            //     {
-            //         return mailInfos[i];
-            //     }
-            // }
-            if (mailInfoDic.ContainsKey(mailId)) return mailInfoDic[mailId];
+
+            if (_mailInfoDic.ContainsKey(mailId))
+            {
+                return _mailInfoDic[mailId];
+            }
             return null;
         }
 

+ 18 - 0
GameClient/Assets/Game/HotUpdate/Data/RedDotDataManager.cs

@@ -46,5 +46,23 @@ namespace GFGGame
         {
             return ActivityDataManager.Instance.dailyLoginBonusStatus == ConstBonusStatus.CAN_GET;
         }
+        /// <summary>
+        /// 有邮件未读或未领奖励
+        /// </summary>
+        /// <returns></returns>
+        public bool GetMailRed()
+        {
+            if (MailDataManager.Instance.UnreadCount > 0) return true;
+            Dictionary<long, MailInfo> mailInfoDic = MailDataManager.Instance.MailInfoDic;
+            foreach (MailInfo mailInfo in mailInfoDic.Values)
+            {
+                if (MailDataManager.Instance.GetMailState(mailInfo) == 1) return false;//数据已排序,第一个已读,则所没有含奖邮件
+                if (MailDataManager.Instance.GetMailState(mailInfo) == 3) return false;//数据已排序,第一个已领,则所有奖励已领
+                if (MailDataManager.Instance.GetMailState(mailInfo) == 2) return true;//数据已排序,有奖励未领
+
+            }
+
+            return false;
+        }
     }
 }

+ 4 - 0
GameClient/Assets/Game/HotUpdate/Views/CommonGame/ApproachOfItemView.cs

@@ -112,6 +112,10 @@ namespace GFGGame
                     int count = temp.Length > 2 ? (int)temp[2] : 1;
                     ViewManager.Show(ViewName.CLOTHING_SHOP_VIEW, new object[] { null, null, _itemId, count }, _fromeViewDatas, true, true);
                     break;
+                case ConstFunctionId.FU_ZHUANG_DECOMPOSE:
+                    this.Hide();
+                    ViewManager.Show<ClothingDecomposeView>(null, _fromeViewDatas);
+                    break;
                 case ConstFunctionId.JU_QING_GUAN_QIA:
                     string value = infos[1];
                     var levelCfgId = int.Parse(value);

+ 1 - 0
GameClient/Assets/Game/HotUpdate/Views/MainUI/MainUIView.cs

@@ -362,6 +362,7 @@ namespace GFGGame
             RedDotController.Instance.SetComRedDot(_btnGongGao, RedDotDataManager.Instance.GetNoticeRed());
             RedDotController.Instance.SetComRedDot(_btnRenWu, RedDotDataManager.Instance.GetTaskRed());
             RedDotController.Instance.SetComRedDot(_ui.m_btnDailyLogin.target, RedDotDataManager.Instance.GetDailyLoginRed());
+            RedDotController.Instance.SetComRedDot(_btnYouJian, RedDotDataManager.Instance.GetMailRed());
         }
 
 

BIN
GameClient/Assets/ResIn/Config/excelConfig.sqlite.bytes