Browse Source

Merge branch 'master' of http://10.108.64.190:3000/gfg/client

zhaoyang 2 years ago
parent
commit
856dbe84bc

+ 42 - 3
GameClient/Assets/Game/HotUpdate/Data/ActivityDay7DataManager.cs

@@ -16,11 +16,50 @@ namespace GFGGame
             return ItemDataManager.GetItemNum(ConstItemID.ACTIVITY_DAY_7_SCORE);
         }
 
-        //NumericType.Day7ActivityReward
-        public bool GetActivityDay7RewardState(int day)
+        //NumericType.Day7ActivityReward,true表示已获得?
+        public bool GetActivityDay7RewardState(int id)
         {
             var day7ActivityReward = GameGlobal.myNumericComponent.GetAsInt(NumericType.Day7ActivityReward);
-            return MathHelper.isBitSet(day7ActivityReward, day);
+            return MathHelper.isBitSet(day7ActivityReward, id);
+        }
+
+        //检测7日活动活跃奖励是否可领
+        public bool CheckActivityDay7RewardCanGet(int id)
+        {
+            var activity7DaysCfg = Activity7DaysCfgArray.Instance.GetCfg(id);
+            var got = ActivityDay7DataManager.Instance.GetActivityDay7RewardState(id);
+            if (got)
+            {
+                return false;
+            }
+            //判断积分是否够
+            var score = ActivityDay7DataManager.Instance.GetScore();
+            if (score < activity7DaysCfg.score)
+            {
+                return false;
+            }
+            return true;
+        }
+
+        //检查指定天数有没有任务奖励可领
+        public bool CheckActivityDay7TaskRewrdCanGetByDay(int day)
+        {
+            //检查天数
+            var currentDay = ActivityDay7DataManager.Instance.GetActivityDay7Day();
+            if (currentDay < day)
+            {
+                return false;
+            }
+            var activity7DaysTaskCfg = Activity7DaysTaskCfgArray.Instance.GetCfg(day);
+            var taskIdArr = activity7DaysTaskCfg.taskIdArr;
+            foreach(int taskId in taskIdArr)
+            {
+                if(TaskDataManager.Instance.GetTaskStateById(taskId) == ConstBonusStatus.CAN_GET)
+                {
+                    return true;
+                }
+            }
+            return false;
         }
 
         public bool CheckOpen()

+ 1 - 2
GameClient/Assets/Game/HotUpdate/Data/BattlePassTaskDataManager.cs

@@ -7,7 +7,7 @@ namespace GFGGame
     public class BattlePassTaskDataManager : SingletonBase<BattlePassTaskDataManager>
     {
         //是否初始化服务器数据
-        private bool initedFromServer;
+        public bool initedFromServer;
 
         //通行证赛季Id
         private int SeasonId;
@@ -36,7 +36,6 @@ namespace GFGGame
         public void AddNormalReward(int levelId)
         {
             NormalRewards.Add(levelId);
-            initedFromServer = true;
         }
 
         public void AddSuperReward(int levelId)

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

@@ -46,6 +46,30 @@ namespace GFGGame
             return BattlePassTaskDataManager.Instance.GetHadCanGetReward();
         }
 
+        //七日活动红点
+        public bool GetActivityDay7Red()
+        {
+            //任务奖励
+            var currentDay = ActivityDay7DataManager.Instance.GetActivityDay7Day();
+            for(var day = currentDay; day > 0; day--)
+            {
+                if(ActivityDay7DataManager.Instance.CheckActivityDay7TaskRewrdCanGetByDay(day))
+                {
+                    return true;
+                }
+            }
+            //活跃奖励
+            var activity7DaysCfgs = Activity7DaysCfgArray.Instance.dataArray;
+            foreach (var cfg in activity7DaysCfgs)
+            {
+                if(ActivityDay7DataManager.Instance.CheckActivityDay7RewardCanGet(cfg.id))
+                {
+                    return true;
+                }
+            }
+            return false;
+        }
+
         /// <summary>
         /// 七天签到
         /// </summary>

+ 4 - 0
GameClient/Assets/Game/HotUpdate/Data/TaskDataManager.cs

@@ -52,6 +52,8 @@ namespace GFGGame
             {
                 TaskInfosDic[taskId] = info;
             }
+            EventAgent.DispatchEvent(ConstMessage.NOTICE_TASK_STATE_CHANGE, taskId);
+            EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
         }
 
         //RemoveTaskInfo
@@ -82,6 +84,8 @@ namespace GFGGame
             }
 
             taskInfo.State = state;
+            EventAgent.DispatchEvent(ConstMessage.NOTICE_TASK_STATE_CHANGE, taskId);
+            EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
         }
 
         /// <summary>

+ 1 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/ActivityDay7SProxy.cs

@@ -9,6 +9,7 @@ namespace GFGGame
             //C2S_GetDay7Reward
             var response = await MessageHelper.SendToServer(new C2S_GetDay7Reward { Id = cfg.id });
             if (!(response is { Error: ErrorCode.ERR_Success })) return false;
+            EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
             //奖励弹窗
             BonusController.TryShowBonusList(cfg.bonusArr);
             return true;

+ 1 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/BattlePassTaskSProxy.cs

@@ -65,6 +65,7 @@ namespace GFGGame
             var battlePassTaskDataManager = BattlePassTaskDataManager.Instance;
             battlePassTaskDataManager.SetIsBuy(response.IsBuy);
             battlePassTaskDataManager.SetSeasonId(response.SeasonId);
+            battlePassTaskDataManager.initedFromServer = true;
             foreach (var level in response.RewardList)
             {
                 battlePassTaskDataManager.AddNormalReward(level);

+ 2 - 1
GameClient/Assets/Game/HotUpdate/ServerProxy/TaskSProxy.cs

@@ -1,6 +1,7 @@
 using System.Linq;
 using ET;
 using GFGGame;
+using UnityEditor;
 
 namespace ET
 {
@@ -16,7 +17,6 @@ namespace ET
                 Progress = message.TaskInfo.Progress
             };
             TaskDataManager.Instance.UpdateTaskInfo(taskInfo.ID, taskInfo);
-            EventAgent.DispatchEvent(ConstMessage.NOTICE_TASK_STATE_CHANGE, taskInfo.ID);
             await ETTask.CompletedTask;
         }
     }
@@ -28,6 +28,7 @@ namespace ET
         {
             TaskDataManager.Instance.RemoveTaskInfo(message.TaskId);
             EventAgent.DispatchEvent(ConstMessage.NOTICE_TASK_STATE_CHANGE, message.TaskId);
+            EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
             await ETTask.CompletedTask;
         }
     }

+ 9 - 11
GameClient/Assets/Game/HotUpdate/Views/ActivityDay7/ActivityDay7View.cs

@@ -84,6 +84,7 @@ namespace GFGGame
             var taskCfg = TaskCfgArray.Instance.GetCfg(taskId);
             if (taskCfg == null) return;
             if (taskCfg.taskType != TaskType.Day7) return;
+            SetDayList();
             SetTasks();
         }
 
@@ -115,15 +116,16 @@ namespace GFGGame
         private void DayListRenderer(int index, GObject obj)
         {
             var item = UI_ButtonDay.Proxy(obj);
+            var cfg = cfgDataArray[index];
             if (item.target.data == null)
             {
-                var cfg = cfgDataArray[index];
                 item.m_text.text = $"第{cfg.days}天";
                 item.target.data = index;
                 item.target.onClick.Add(OnClickDay);
             }
             //设置按钮状态
             item.m_c1.selectedIndex = index == onClickDayIndex ? 0 : 1;
+            RedDotController.Instance.SetComRedDot(item.target, ActivityDay7DataManager.Instance.CheckActivityDay7TaskRewrdCanGetByDay(cfg.days));
             UI_ButtonDay.ProxyEnd();
         }
 
@@ -186,6 +188,7 @@ namespace GFGGame
             }
             item.m_listTaskReward.data = taskCfg.rewardsArr;
             item.m_listTaskReward.numItems = taskCfg.rewardsArr.Length;
+            RedDotController.Instance.SetComRedDot(item.m_GetRewardBt, item.m_c1.selectedIndex == 1);
             UI_TaskListItem.ProxyEnd();
         }
 
@@ -244,6 +247,7 @@ namespace GFGGame
                 item.target.onClick.Add(OnClickReward);
                 UI_ExpProcess.ProxyEnd();
             }
+            FreshGetStatus();
         }
 
         //设置天数列表
@@ -259,11 +263,13 @@ namespace GFGGame
         {
             components.ForEach(com =>
             {
-                var item = UI_ExpProcessItem.Create(com);
+                var item = UI_ExpProcessItem.Proxy(com);
                 var cfg = (Activity7DaysCfg)item.target.data;
                 var cfgID = cfg.id;
                 var state = ActivityDay7DataManager.Instance.GetActivityDay7RewardState(cfgID);
                 item.m_c2.selectedIndex = state ? 1 : 0;
+                RedDotController.Instance.SetComRedDot(item.target, ActivityDay7DataManager.Instance.CheckActivityDay7RewardCanGet(cfgID));
+                UI_ExpProcessItem.ProxyEnd();
             });
         }
 
@@ -281,15 +287,7 @@ namespace GFGGame
             if (!(context.sender is GObject btnGet)) return;
             var activity7DaysCfg = (Activity7DaysCfg)btnGet.data;
             var id = activity7DaysCfg.id;
-            var get = ActivityDay7DataManager.Instance.GetActivityDay7RewardState(id);
-            if (get)
-            {
-                GoodsItemTipsController.ShowItemTips(activity7DaysCfg.bonusArr[0][0]);
-                return;
-            }
-            //判断积分是否够
-            var score = ActivityDay7DataManager.Instance.GetScore();
-            if (score < activity7DaysCfg.score)
+            if(!ActivityDay7DataManager.Instance.CheckActivityDay7RewardCanGet(id))
             {
                 GoodsItemTipsController.ShowItemTips(activity7DaysCfg.bonusArr[0][0]);
                 return;

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

@@ -1016,6 +1016,7 @@ namespace GFGGame
             RedDotController.Instance.SetComRedDot(_ui.m_btnDailyWelfare.target, RedDotDataManager.Instance.GetLimiteChargeRewardRed(), "", -10, 5);
             RedDotController.Instance.SetComRedDot(_ui.m_btnActivityLuckyBox.target, RedDotDataManager.Instance.GetActLuckyBoxRewardRed(), "", -10, 5);
             RedDotController.Instance.SetComRedDot(_btnBag, RedDotDataManager.Instance.GetMainBagGiftRed());
+            RedDotController.Instance.SetComRedDot(_ui.m_btnActivityDay7.target, RedDotDataManager.Instance.GetActivityDay7Red());
         }
 
         private void CheckGuide(object param)