Browse Source

开服活动剧情增加红点提示

huangxiaoyue 1 year ago
parent
commit
a888582bad

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

@@ -781,7 +781,7 @@ namespace GFGGame
         /// <returns></returns>
         public bool GetOpenServerRed()
         {
-           if (GetActLuckyBoxRewardRed(ConstLimitTimeActivityType.ActLimitStlyc) || GetGiftBagRewardRed() || GetMeiRiTeHuiRed())
+           if (GetActLuckyBoxRewardRed(ConstLimitTimeActivityType.ActLimitStlyc) || GetGiftBagRewardRed() || GetMeiRiTeHuiRed() || GetOpenServerStoryRed())
                 return true;
 
             return false;
@@ -831,6 +831,28 @@ namespace GFGGame
         }
 
         /// <summary>
+        /// 开服活动-剧情
+        /// </summary>
+        /// <returns></returns>
+        public bool GetOpenServerStoryRed()
+        {
+            var activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitStlyc);
+            var activityCfg = ActivityOpenCfgArray.Instance.GetCfg(activityId);
+            Dictionary<int, List<StoryLevelCfg>> storyLevelCfgs = new Dictionary<int, List<StoryLevelCfg>>();
+
+            for (int i = 0; i < 4; i++) {
+                ActivityStoryCfg activityStoryCfg = ActivityStoryCfgArray.Instance.GetCfg(activityCfg.params4Arr[i]);
+                var storyLevelCfg = StoryLevelCfgArray.Instance.GetCfgsBytypeAndsubTypeAndchapterId(activityStoryCfg.type, activityStoryCfg.subType, activityCfg.params4Arr[i]);
+                storyLevelCfgs.Add(i, storyLevelCfg);
+                if ((i == 0 && !InstanceZonesDataManager.CheckLevelPass(storyLevelCfgs[i][0].id)) || (i > 0 && InstanceZonesDataManager.CheckLevelPass(storyLevelCfgs[i - 1][0].id) && !InstanceZonesDataManager.CheckLevelPass(storyLevelCfgs[i][0].id) && ItemDataManager.ItemCollect.ContainsKey(activityStoryCfg.needItemsArr[0][0]) && ItemDataManager.ItemCollect[activityStoryCfg.needItemsArr[0][0]] >= activityStoryCfg.needItemsArr[0][1]))
+                {
+                    return true;
+                }
+            }
+            return false;
+        }
+
+        /// <summary>
         /// 背包中存在礼包就一直给主界面 背包 红点
         /// </summary>
         /// <returns></returns>

+ 1 - 0
GameClient/Assets/Game/HotUpdate/Views/OpenServerActivity/OpenServerActivityView.cs

@@ -102,6 +102,7 @@ namespace GFGGame
         {
             RedDotController.Instance.SetComRedDot(_ui.m_btnTenShu, (RedDotDataManager.Instance.GetActLuckyBoxRewardRed(ConstLimitTimeActivityType.ActLimitStlyc) || RedDotDataManager.Instance.GetGiftBagRewardRed() || RedDotDataManager.Instance.GetMeiRiTeHuiRed()), "", -100, 11);
             RedDotController.Instance.SetComRedDot(_ui.m_btnHeaven, MiniGameDateManager.Instance.GetRewardRot());
+            RedDotController.Instance.SetComRedDot(_ui.m_btnAnswerTianmen, RedDotDataManager.Instance.GetOpenServerStoryRed(), "", -80, 100);
         }
 
         private void UpdateTime(object param)

+ 20 - 5
GameClient/Assets/Game/HotUpdate/Views/OpenServerActivity/OpenServerStoryView.cs

@@ -77,8 +77,10 @@ namespace GFGGame
 
         private void RenderListItem(int index, GObject obj)
         {
+            int posRedX = -130;
+            int posRedY = 30;
+            bool redVisible = false;
             UI_StoryItem item = UI_StoryItem.Proxy(obj);
-
             ActivityStoryCfg activityStoryCfg = ActivityStoryCfgArray.Instance.GetCfg(_activityCfg.params4Arr[index]);
             var storyLevelCfg = StoryLevelCfgArray.Instance.GetCfgsBytypeAndsubTypeAndchapterId(activityStoryCfg.type, activityStoryCfg.subType, _activityCfg.params4Arr[index]);
             _storyLevelCfgs.Add(index, storyLevelCfg);
@@ -93,18 +95,31 @@ namespace GFGGame
                 item.m_rewardItem.target.onClick.Add(OnClickIcon);
 
             item.m_rewardItem.target.data = itemCfg.id;
-            if (index > 0 && (!InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1][0].id) || !ItemDataManager.ItemCollect.ContainsKey(activityStoryCfg.needItemsArr[0][0]) || ItemDataManager.ItemCollect[activityStoryCfg.needItemsArr[0][0]] < activityStoryCfg.needItemsArr[0][1])){
+            if (index > 0 && (!InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1][0].id) || !ItemDataManager.ItemCollect.ContainsKey(activityStoryCfg.needItemsArr[0][0]) || ItemDataManager.ItemCollect[activityStoryCfg.needItemsArr[0][0]] < activityStoryCfg.needItemsArr[0][1]))
+            {
                 item.m_storyImageType.selectedIndex = 0;
             }
-            else
-                item.m_storyImageType.selectedIndex = index+1;
+            else { 
+                item.m_storyImageType.selectedIndex = index + 1;
+            }
 
-            if (activityStoryCfg.needItemsArr.Length > 0) { 
+            if (item.m_posType.selectedIndex == 1) {
+                posRedX = -52;
+                posRedY = 30;
+            }
 
+            if ((index == 0 && !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index][0].id)) || (index > 0 && InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1][0].id) && !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index][0].id) && ItemDataManager.ItemCollect.ContainsKey(activityStoryCfg.needItemsArr[0][0]) && ItemDataManager.ItemCollect[activityStoryCfg.needItemsArr[0][0]] >= activityStoryCfg.needItemsArr[0][1]))
+            {
+                redVisible = true;
+            }
+            RedDotController.Instance.SetComRedDot(item.target, redVisible, "", posRedX, posRedY);
+
+            if (activityStoryCfg.needItemsArr.Length > 0) { 
                 item.m_txtNotOpenTitle.text = string.Format("收集{0}/{1}个", ItemDataManager.ItemCollect[activityStoryCfg.needItemsArr[0][0]], activityStoryCfg.needItemsArr[0][1]);
                 ItemCfg itemNeedCfg = ItemCfgArray.Instance.GetCfg(activityStoryCfg.needItemsArr[0][0]);
                 item.m_loaNeedIcon.url = ResPathUtil.GetIconPath(itemNeedCfg);
             }
+
             if (item.m_loaItemBg.data == null)
                 item.m_loaItemBg.onClick.Add(OnClickBtnPlay);