Browse Source

修改元宵活动任务红点为 只要不是所有任务都领取了奖励就一直显示红点

leiyasi 1 year ago
parent
commit
c4ebbff455

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

@@ -1071,7 +1071,7 @@ namespace GFGGame
         public bool GetActivityYuanXiaoRed()
         {
             return ActivityGetYuanXiaoDataManager.Instance.HaveNewLevelCanPlay()
-            || TaskDataManager.Instance.CheckTaskRewardCanGet(TaskFuncType.YuanXiaoActivity);
+            || ActivityGetYuanXiaoDataManager.Instance.ShowTaskRedDots(TaskFuncType.YuanXiaoActivity);
         }
 
         /// <summary>

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoDataManager.cs

@@ -1,6 +1,7 @@
 using ET;
 using System.Collections;
 using System.Collections.Generic;
+using System.Linq;
 using System.Threading.Tasks;
 using UnityEngine;
 
@@ -42,6 +43,16 @@ namespace GFGGame
             return i;
         }
 
+        public bool ShowTaskRedDots(int taskFuncType)
+        {
+            var taskInfos = TaskDataManager.Instance.GetTaskInfos(taskFuncType);
+            if (taskInfos.Select(taskInfo => taskInfo.Value).Any(info => info.State != ConstBonusStatus.GOT))
+            {
+                return true;
+            }
+            return false;
+        }
+
         public List<GameInfoProto> gameinfoList = new List<GameInfoProto>();
     }
 }

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoEntryView.cs

@@ -210,7 +210,7 @@ namespace GFGGame
             }
 
             RedDotController.Instance.SetComRedDot(_ui.m_btnTask, 
-                TaskDataManager.Instance.CheckTaskRewardCanGet(TaskFuncType.YuanXiaoActivity), "", -25, 20);
+                ActivityGetYuanXiaoDataManager.Instance.ShowTaskRedDots(TaskFuncType.YuanXiaoActivity), "", -25, 20);
         }
 
         private void AddEffect()

+ 5 - 5
GameClient/Assets/Game/HotUpdate/Views/Poem/PoemGalleryView.cs

@@ -609,7 +609,7 @@ namespace GFGGame
             if (galleryData.CollectOrNot)
             {
                 bool result = await PoemGallerySProxy.ReqCancelCollecteGalleryWorks(workId);
-                if (result)
+                if (result && isShowing)
                 {
                     if (_tabIndex == TabType.FAVORITES && _subtabIndex == FavoritesType.FAVORITE)
                     {
@@ -624,7 +624,7 @@ namespace GFGGame
             else
             {
                 bool result = await PoemGallerySProxy.ReqCollecteGalleryWorks(workId);
-                if (result)
+                if (result && isShowing)
                 {
                     if (_tabIndex == TabType.FAVORITES && _subtabIndex == FavoritesType.FAVORITE)
                     {
@@ -660,7 +660,7 @@ namespace GFGGame
             }
 
             bool result = await PoemGallerySProxy.ReqVoteGalleryWorks(workId);
-            if (result)
+            if (result &&  isShowing)
             {
 
                 UpdateGalleryList();
@@ -740,7 +740,7 @@ namespace GFGGame
 
             bool result = await PoemGallerySProxy.ReqGalleryList(_sortType, 0, PoemGalleryDataManager.pageCount);
             // OnPullDownTimeComplete();
-            if (result)
+            if (result && isShowing)
             {
                 Timers.inst.StartCoroutine(PictureStorageHelper.Download(_galleryDatas, 0, UpdateGalleryList));
             }
@@ -771,7 +771,7 @@ namespace GFGGame
             _scrollList.scrollPane.LockFooter(footer.sourceHeight + 10);
 
             bool result = await PoemGallerySProxy.ReqGalleryList(_sortType, _galleryDatas.Count, PoemGalleryDataManager.pageCount);
-            if (result)
+            if (result && isShowing)
             {
                 Timers.inst.StartCoroutine(PictureStorageHelper.Download(_galleryDatas, _lastGalleryDatasCount, UpdateGalleryList));
             }