瀏覽代碼

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

guodong 1 年之前
父節點
當前提交
8c51d24c5a

+ 5 - 1
GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs

@@ -156,8 +156,12 @@ namespace GFGGame
         //每日重置
         public const string RESET_DAILY_DATA = "RESET_DAILY_DATA";
 
+        //摘星免费时间
         public const string LUCKY_BOX_FREE_TIME_CHANGED = "LUCKY_BOX_FREE_TIME_CHANGED";
-        
+
+        //成就进度条
+        public const string ACHIEVEMENT_TASK_PRO_CHANGED = "ACHIEVEMENT_TASK_PRO_CHANGED";
+
         //MainView to 同步刷新特惠礼包 限时礼包倒计时
         public const string LUCKY_BOX_TIME = "LUCKY_BOX_TIME";
     }

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

@@ -43,6 +43,10 @@ namespace GFGGame
             {
                 return true;
             }
+            if (TaskDataManager.Instance.CheckTaskRewardCanGet(TaskFuncType.Achievement))
+            {
+                return true;
+            }
             //判断是否有通行证奖励可领取
             return BattlePassTaskDataManager.Instance.GetHadCanGetReward();
         }

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

@@ -204,6 +204,19 @@ namespace GFGGame
             return false;
         }
 
+        public bool CheckTaskSubRewardCanGet(int taskFuncType, int taskFuncSub)
+        {
+            var _cfgsAll = TaskDataManager.Instance.GetTaskCfgs(taskFuncType);
+            foreach (var info in _cfgsAll)
+            {
+                if (info.achievementType == taskFuncSub + 1) {
+                    if (TaskDataManager.Instance.GetTaskStateById(info.id) == 1)
+                        return true;
+                }
+            }
+            return false;
+        }
+
         public void Clear()
         {
             TaskInfosDic.Clear();
@@ -218,5 +231,16 @@ namespace GFGGame
                 ? taskCfg.rewardsArr
                 : taskCfg.activityRewardsArr;
         }
+
+        private List<AchievementTaskTypePro> saveAchievementTaskTypeProList;
+        public void SaveAchievementTaskTypeProList(List<AchievementTaskTypePro> AchievementTaskTypeProList)
+        {
+            saveAchievementTaskTypeProList = AchievementTaskTypeProList;
+        }
+
+        public List<AchievementTaskTypePro> GetAchievementTaskTypeProList()
+        {
+            return saveAchievementTaskTypeProList;
+        }
     }
 }

+ 6 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_CreateRoleUI.cs

@@ -10,6 +10,8 @@ namespace UI.CreateRole
         public GLoader m_loaBg;
         public UI_EnvelopeModel m_envelopeModel;
         public Transition m_t_Open;
+        public Transition m_t_In;
+        public Transition m_t_AfterOpen;
         public const string URL = "ui://5al8chbdxt5s0";
         public const string PACKAGE_NAME = "CreateRole";
         public const string RES_NAME = "CreateRoleUI";
@@ -60,6 +62,8 @@ namespace UI.CreateRole
             m_loaBg = (GLoader)comp.GetChild("loaBg");
             m_envelopeModel = (UI_EnvelopeModel)UI_EnvelopeModel.Create(comp.GetChild("envelopeModel"));
             m_t_Open = comp.GetTransition("t_Open");
+            m_t_In = comp.GetTransition("t_In");
+            m_t_AfterOpen = comp.GetTransition("t_AfterOpen");
         }
         public void Dispose(bool disposeTarget = false)
         {
@@ -67,6 +71,8 @@ namespace UI.CreateRole
             m_envelopeModel.Dispose();
             m_envelopeModel = null;
             m_t_Open = null;
+            m_t_In = null;
+            m_t_AfterOpen = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 6 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Studio/UI_ListLevelItem.cs

@@ -16,6 +16,8 @@ namespace UI.Studio
         public GImage m_imgLockBg;
         public GImage m_imgLock;
         public GGroup m_grpLock;
+        public Transition m_ToLeft;
+        public Transition m_ToRight;
         public const string URL = "ui://xz8kxrecv4822p";
         public const string PACKAGE_NAME = "Studio";
         public const string RES_NAME = "ListLevelItem";
@@ -72,6 +74,8 @@ namespace UI.Studio
             m_imgLockBg = (GImage)comp.GetChild("imgLockBg");
             m_imgLock = (GImage)comp.GetChild("imgLock");
             m_grpLock = (GGroup)comp.GetChild("grpLock");
+            m_ToLeft = comp.GetTransition("ToLeft");
+            m_ToRight = comp.GetTransition("ToRight");
         }
         public void Dispose(bool disposeTarget = false)
         {
@@ -85,6 +89,8 @@ namespace UI.Studio
             m_imgLockBg = null;
             m_imgLock = null;
             m_grpLock = null;
+            m_ToLeft = null;
+            m_ToRight = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Task/UI_AchieveItem.cs

@@ -9,6 +9,7 @@ namespace UI.Task
         public GComponent target;
         public Controller m_AchieveType;
         public GTextField m_txtName;
+        public GProgressBar m_achieveBar;
         public const string URL = "ui://5mpsibzzaignto5";
         public const string PACKAGE_NAME = "Task";
         public const string RES_NAME = "AchieveItem";
@@ -58,11 +59,13 @@ namespace UI.Task
         {
             m_AchieveType = comp.GetController("AchieveType");
             m_txtName = (GTextField)comp.GetChild("txtName");
+            m_achieveBar = (GProgressBar)comp.GetChild("achieveBar");
         }
         public void Dispose(bool disposeTarget = false)
         {
             m_AchieveType = null;
             m_txtName = null;
+            m_achieveBar = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

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

@@ -101,7 +101,8 @@ namespace GFGGame
                     Progress = response.NextTask.Progress
                 };
                 TaskDataManager.Instance.UpdateTaskInfo(response.NextTask.Id, taskInfo);
-                TaskDataManager.Instance.RemoveTaskInfo(response.Id);
+                if(response.NextTask.Id != response.Id)
+                    TaskDataManager.Instance.RemoveTaskInfo(response.Id);
             }
             else
                 TaskDataManager.Instance.UpdateTaskState(response.Id, response.Status);
@@ -136,5 +137,18 @@ namespace GFGGame
             EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
             return true;
         }
+
+        public static async ETTask<bool> GetTaskTypePro()
+        {
+            var response = (M2C_GetAchievementTaskTypePro)await MessageHelper.SendToServer(new C2M_GetAchievementTaskTypePro {});
+            if (!(response is { Error: ErrorCode.ERR_Success })) return false;
+            if (response.AchievementTaskTypeProList != null)
+            {
+                TaskDataManager.Instance.SaveAchievementTaskTypeProList(response.AchievementTaskTypeProList);
+                EventAgent.DispatchEvent(ConstMessage.ACHIEVEMENT_TASK_PRO_CHANGED);
+            }
+
+            return true;
+        }
     }
 }

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

@@ -67,7 +67,7 @@ namespace GFGGame
                     _effectUIDic.Add("FX_LiuSu", EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_envelope.m_LiuSuEffectHolder, "ui_CreateRoleUI/Before_Open", "FX_LiuSu"));
                     _effectUIDic.Add("FX_taril", EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_trailEffectHolder, "ui_CreateRoleUI/Before_Open", "FX_taril"));
 
-                    _ui.m_envelopeModel.m_t_In.Play(() =>
+                    _ui.m_t_In.Play(() =>
                     {
                         ChangeAnimationState(State.IDLE);
                     });

+ 30 - 0
GameClient/Assets/Game/HotUpdate/Views/Studio/StudioFilingView.cs

@@ -13,6 +13,7 @@ namespace GFGGame
         private StudioCfg _studioCfg;
         private List<StoryLevelCfg> _storyLevelCfgs;
         private int _viewData = 0;
+        private int itemIndex = 0;
 
         public override void Dispose()
         {
@@ -68,6 +69,8 @@ namespace GFGGame
 
             UpdateView();
             Timers.inst.AddUpdate(CheckGuide);
+
+            UpdateItem();
         }
 
         protected override void OnHide()
@@ -75,6 +78,7 @@ namespace GFGGame
             base.OnHide();
             _valueBarController.OnHide();
             Timers.inst.Remove(CheckGuide);
+            Timers.inst.Remove(AddItemUpdate);
 
         }
         protected void GoBackFrom()
@@ -253,5 +257,31 @@ namespace GFGGame
             GuideController.TryCompleteGuide(ConstGuideId.STUDIO_FILING, 5);
 
         }
+
+        private void UpdateItem()
+        {
+            for (int i = 0; i < _ui.m_list.numChildren; i++)
+            {
+                _ui.m_list.GetChildAt(i).visible = false;
+            }
+            itemIndex = 0;
+            Timers.inst.Add(0.2f, _ui.m_list.numChildren, AddItemUpdate, 1);
+        }
+
+        private void AddItemUpdate(object param)
+        {
+            _ui.m_list.GetChildAt(itemIndex).visible = true;
+            UI_ListLevelItem item = UI_ListLevelItem.Proxy(_ui.m_list.GetChildAt(itemIndex));
+            if (itemIndex % 2 == 0)
+            {
+                item.m_ToLeft.Play();
+            }
+            else
+            {
+                item.m_ToRight.Play();
+            }
+            itemIndex++;
+            UI_ListLevelItem.ProxyEnd();
+        }
     }
 }

+ 26 - 1
GameClient/Assets/Game/HotUpdate/Views/Task/TaskAchieveView.cs

@@ -48,17 +48,31 @@ namespace GFGGame
         protected override void AddEventListener()
         {
             base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.RED_CHANGE, UpdateInfo);
+            EventAgent.AddEventListener(ConstMessage.ACHIEVEMENT_TASK_PRO_CHANGED, UpdateRewardState);
         }
 
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.RED_CHANGE, UpdateInfo);
+            EventAgent.RemoveEventListener(ConstMessage.ACHIEVEMENT_TASK_PRO_CHANGED, UpdateRewardState);
+        }
+
+        private void UpdateRewardState()
+        {
+            _ui.m_listAchieveItem.numItems = 6;
         }
 
         protected override void OnShown()
         {
             base.OnShown();
-            _ui.m_listAchieveItem.numItems = 6;
+            UpdateInfo();
+        }
+        protected async void UpdateInfo()
+        {
+            var result = await TaskSProxy.GetTaskTypePro();
+            if (!result) return;
         }
 
         protected override void OnHide()
@@ -80,6 +94,17 @@ namespace GFGGame
             }
             listItem.target.data = index;
 
+            var taskTypeProList = TaskDataManager.Instance.GetAchievementTaskTypeProList();
+            foreach (var info in taskTypeProList) {
+                if (info.AchievementType == index+1) {
+                    listItem.m_achieveBar.max = info.AllTaskNum;
+                    listItem.m_achieveBar.value = info.CompleteTaskNum;
+                    break;
+                }
+            }
+
+            RedDotController.Instance.SetComRedDot(listItem.target, TaskDataManager.Instance.CheckTaskSubRewardCanGet(TaskFuncType.Achievement, index),"",-10,60);
+
             UI_AchieveItem.ProxyEnd();
         }
     }

+ 1 - 0
GameClient/Assets/Game/HotUpdate/Views/Task/TaskView.cs

@@ -102,6 +102,7 @@ namespace GFGGame
             showRedPoint = TaskDataManager.Instance.CheckTaskRewardCanGet(TaskFuncType.Weekly)
                 || DailyTaskDataManager.Instance.GetHadGetRewardNum(TaskFuncType.Weekly);
             RedDotController.Instance.SetComRedDot(_ui.m_btnWeekly, showRedPoint);
+            RedDotController.Instance.SetComRedDot(_ui.m_btnAchieve, TaskDataManager.Instance.CheckTaskRewardCanGet(TaskFuncType.Achievement));
         }
 
     }

二進制
GameClient/Assets/ResIn/UI/CreateRole/CreateRole_fui.bytes


二進制
GameClient/Assets/ResIn/UI/Studio/Studio_fui.bytes


二進制
GameClient/Assets/ResIn/UI/Task/Task_atlas0!a.png


二進制
GameClient/Assets/ResIn/UI/Task/Task_atlas0.png


二進制
GameClient/Assets/ResIn/UI/Task/Task_atlas0_1!a.png


二進制
GameClient/Assets/ResIn/UI/Task/Task_atlas0_1.png


二進制
GameClient/Assets/ResIn/UI/Task/Task_atlas0_2!a.png


二進制
GameClient/Assets/ResIn/UI/Task/Task_atlas0_2.png


二進制
GameClient/Assets/ResIn/UI/Task/Task_fui.bytes