Browse Source

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

zhangyuqian 1 year ago
parent
commit
7f72d38059
25 changed files with 163 additions and 51 deletions
  1. 5 1
      GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs
  2. 4 4
      GameClient/Assets/Game/HotUpdate/Constant/ConstScoreSystem.cs
  3. 23 17
      GameClient/Assets/Game/HotUpdate/Data/ArenaDataManager.cs
  4. 2 2
      GameClient/Assets/Game/HotUpdate/Data/FightDataManager.cs
  5. 4 0
      GameClient/Assets/Game/HotUpdate/Data/RedDotDataManager.cs
  6. 35 10
      GameClient/Assets/Game/HotUpdate/Data/ScoreSystemData.cs
  7. 24 0
      GameClient/Assets/Game/HotUpdate/Data/TaskDataManager.cs
  8. 3 3
      GameClient/Assets/Game/HotUpdate/Data/VO/FightData.cs
  9. 9 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_CreateRoleUI.cs
  10. 3 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Task/UI_AchieveItem.cs
  11. 15 1
      GameClient/Assets/Game/HotUpdate/ServerProxy/TaskSProxy.cs
  12. 2 3
      GameClient/Assets/Game/HotUpdate/Views/CreateRole/CreateRoleView.cs
  13. 5 5
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryDialogView.cs
  14. 1 1
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleScoreView.cs
  15. 1 3
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightTargetScoreView.cs
  16. 26 1
      GameClient/Assets/Game/HotUpdate/Views/Task/TaskAchieveView.cs
  17. 1 0
      GameClient/Assets/Game/HotUpdate/Views/Task/TaskView.cs
  18. BIN
      GameClient/Assets/ResIn/UI/CreateRole/CreateRole_fui.bytes
  19. BIN
      GameClient/Assets/ResIn/UI/Task/Task_atlas0!a.png
  20. BIN
      GameClient/Assets/ResIn/UI/Task/Task_atlas0.png
  21. BIN
      GameClient/Assets/ResIn/UI/Task/Task_atlas0_1!a.png
  22. BIN
      GameClient/Assets/ResIn/UI/Task/Task_atlas0_1.png
  23. BIN
      GameClient/Assets/ResIn/UI/Task/Task_atlas0_2!a.png
  24. BIN
      GameClient/Assets/ResIn/UI/Task/Task_atlas0_2.png
  25. BIN
      GameClient/Assets/ResIn/UI/Task/Task_fui.bytes

+ 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 - 4
GameClient/Assets/Game/HotUpdate/Constant/ConstScoreSystem.cs

@@ -6,16 +6,16 @@ namespace GFGGame
         public const double MAIN_SCORE = 4;
         //服装部件评分系数
         public const double PART_SCORE = 2.33;
-        //点击完美附加评分系数
+        //点击卓越附加评分系数
         public const double PERFECT_SCORE = 0.2;
         //点击优秀附加评分系数
         public const double GREAT_SCORE = 0.13;
         //点击Miss附加评分系数
         public const double MISS_SCORE = 0;
-        //点击系数
+        //通用点击系数
         public const double CLICK_SCORE = 2.22;
-        //完美八连击附加评分系数
-        public const double ALL_PERFECT_SCORE = 0.2;
+        //登峰造极附加评分系数
+        public const double ALL_CIRCLE_SCORE = 3;
         //每个标签的加成系数
         public const double TAG_SCORE = 0.1;
         //标签最大加成数

+ 23 - 17
GameClient/Assets/Game/HotUpdate/Data/ArenaDataManager.cs

@@ -393,28 +393,29 @@ namespace GFGGame
             double maxScore = 0;
             for (int i = 0; i < ThemeList.Count; i++)
             {
-                if (fightDatas[i].type == FightTargetType.PLAYER)
+                var fightData = fightDatas[i];
+                if (fightData.type == FightTargetType.PLAYER)
                 {
-                    long itemsScore = GetItemScoreSum(fightDatas[i].itemScoreList);
+                    long itemsScore = GetItemScoreSum(fightData.itemScoreList);
                     itemSum += itemsScore;
-                    clickScore += GetPerfectClickScore(fightDatas[i]);
-                    skillScore += FightDataManager.Instance.GetSkillFightScore(itemsScore, fightDatas[i].baseScore,
-                        fightDatas[i].leagueSkillScore, fightDatas[i].cardId, fightDatas[i].cardScore,
-                        fightDatas[i].skillLvs);
+                    clickScore += GetPerfectClickScore(fightData);
+                    skillScore += FightDataManager.Instance.GetSkillFightScore(itemsScore, fightData.baseScore,
+                        fightData.leagueSkillScore, fightData.cardId, fightData.cardScore,
+                        fightData.skillLvs);
                 }
                 else
                 {
-                    long itemsScore = GetItemScoreSum(fightDatas[i].itemScoreList);
+                    long itemsScore = GetItemScoreSum(fightData.itemScoreList);
                     itemSum += itemsScore;
-                    clickScore += GetRobotPerfectClickScore(fightDatas[i]);
-                    skillScore += FightDataManager.Instance.GetSkillFightScore(itemsScore, fightDatas[i].baseScore,
-                        fightDatas[i].leagueSkillScore, fightDatas[i].cardId, fightDatas[i].cardScore,
-                        fightDatas[i].skillLvs);
+                    clickScore += GetRobotPerfectClickScore(fightData);
+                    skillScore += FightDataManager.Instance.GetSkillFightScore(itemsScore, fightData.baseScore,
+                        fightData.leagueSkillScore, fightData.cardId, fightData.cardScore,
+                        fightData.skillLvs);
                 }
 
                 //总主属性分
-                double mainScore = ScoreSystemData.Instance.GetMainScore(fightDatas[i]);
-                maxScore += ScoreSystemData.Instance.GetAllCircleAddScore(mainScore);
+                double mainScore = ScoreSystemData.Instance.GetMainScore(fightData);
+                maxScore += ScoreSystemData.Instance.GetAllCircleAddScore(fightData);
             }
             
             //A:(部件基础评分+(角色等级分数+角色雅集技能分+词牌对应主题的属性分数)*点击完美附加评分系数0.2) * 点击系数2.22
@@ -453,10 +454,15 @@ namespace GFGGame
             foreach (int key in roleData.partScoreListDic.Keys)
             {
                 double partBaseScore = ScoreSystemData.Instance.GetPartBaseScore(roleData, key);
-                //(部件基础评分+(角色等级分数+角色雅集技能分+词牌对应主题的属性分数)*点击完美附加评分系数0.2) * 点击系数2.22
-                double score =
-                    (partBaseScore + (roleData.baseScore + roleData.leagueSkillScore + roleData.cardScore) *
-                        ConstScoreSystem.PERFECT_SCORE) * ConstScoreSystem.CLICK_SCORE;
+                //start------------------------------------------------------
+                //本段注释为上个版本的计算公式,留做备份参考
+                //(部件基础分+(人物基础分+雅集技能分数+卡牌属性分数)*卓越点击系数)*点击系数
+                //double score =
+                //    (partBaseScore + (roleData.baseScore + roleData.leagueSkillScore + roleData.cardScore) *
+                //        ConstScoreSystem.PERFECT_SCORE) * ConstScoreSystem.CLICK_SCORE;
+                //end--------------------------------------------------------
+                //改为 点击评分 =(部件基础分+人物基础分)*点击系数
+                double score = (partBaseScore + roleData.baseScore)* ConstScoreSystem.PERFECT_SCORE;
                 clickScore += score;
             }
 

+ 2 - 2
GameClient/Assets/Game/HotUpdate/Data/FightDataManager.cs

@@ -355,8 +355,8 @@ namespace GFGGame
             currentTime = BeginTime.ALL_PERFECT_START;
             GetSkillScore(FightRoleType.MINE, roundIndex, currentTime, partId, mainScore, cardId, skillLvs, roundTime, ref score, targetMainScore, targetCardId, targetSkillLvs, targetRoundTime, ref targetScore);
             GetSkillScore(FightRoleType.TAEGET, roundIndex, currentTime, partId, targetMainScore, targetCardId, targetSkillLvs, targetRoundTime, ref targetScore, mainScore, cardId, skillLvs, roundTime, ref score);
-            score += ScoreSystemData.Instance.GetAllCircleAddScore(mainScore);
-            targetScore += ScoreSystemData.Instance.GetAllCircleAddScore(targetMainScore);
+            score += ScoreSystemData.Instance.GetAllCircleAddScore(myRoleData);
+            targetScore += ScoreSystemData.Instance.GetAllCircleAddScore(targetRoleData);
             Debug.Log(" targetScore666:" + targetScore);
             _score = Mathf.CeilToInt((float)score);
             _targetScore = Mathf.CeilToInt((float)targetScore);

+ 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();
         }

+ 35 - 10
GameClient/Assets/Game/HotUpdate/Data/ScoreSystemData.cs

@@ -124,7 +124,6 @@ namespace GFGGame
         {
 
             //部件评分=部件基础分*部件系数
-            //点击评分=(部件基础分+(人物基础分+雅集技能分+词牌属性分数)*点击系数)*2.22   (新点击公式,防止点击优秀却因为未穿衣服结果是0分)
             //词牌评分=总属性*技能配表百分比
             double partBaseScore = GetPartBaseScore(roleData, partId);
 
@@ -135,17 +134,20 @@ namespace GFGGame
             int cardScore = roleData.cardScore;
 
             double clickCoefficient = GetPartItemClickScore(clickType);
-            double clickScore = (partBaseScore + (roleScore + leagueSkillScore + cardScore) * clickCoefficient) * ConstScoreSystem.CLICK_SCORE;
-
+            //start------------------------------------------------------
+            //本段注释为上个版本的计算公式,留做备份参考
+            //点击评分=(部件基础分+(人物基础分+雅集技能分+词牌属性分数)*点击系数)*2.22   (防止点击优秀却因为未穿衣服结果是0分)
+            //double clickScore = (partBaseScore + (roleScore + leagueSkillScore + cardScore) * clickCoefficient) * ConstScoreSystem.CLICK_SCORE;
+            //end--------------------------------------------------------
+            //改为 点击评分 =(部件基础分+人物基础分)*点击系数
+            double clickScore = (partBaseScore + roleScore) * clickCoefficient;
             int score = (int)Math.Ceiling(partScore + clickScore + skillScore);
-            Debug.Log("clickScore:" + clickScore + "    score:" + score);
             return Math.Max(0, score);
         }
 
         public int GetRobotPartScore(FightData robotData, int partId, int clickType, double skillScore)
         {
             //部件评分=部件基础分*部件系数
-            //点击评分=(部件基础分+(人物基础分+词牌属性分数)*点击系数)*2.22   (新点击公式,防止点击优秀却因为未穿衣服结果是0分)
             //词牌评分=总属性*技能配表百分比
             double partBaseScore = GetRobotPartBaseScore(robotData, partId);
 
@@ -156,8 +158,13 @@ namespace GFGGame
             int cardScore = robotData.cardScore;
 
             double clickCoefficient = GetPartItemClickScore(clickType);
-            double clickScore = (partBaseScore + (cardScore + leagueSkillScore + roleScore) * clickCoefficient) * ConstScoreSystem.CLICK_SCORE;
-
+            //start------------------------------------------------------
+            //本段注释为上个版本的计算公式,留做备份参考
+            //点击评分=(部件基础分+(人物基础分+词牌属性分数)*点击系数)*2.22   (防止点击优秀却因为未穿衣服结果是0分)
+            //double clickScore = (partBaseScore + (cardScore + leagueSkillScore + roleScore) * clickCoefficient) * ConstScoreSystem.CLICK_SCORE;
+            //end--------------------------------------------------------
+            //改为 点击评分 =(部件基础分+人物基础分)*点击系数
+            double clickScore = (partBaseScore + roleScore) * clickCoefficient;
             int score = (int)Math.Ceiling(partScore + clickScore + skillScore);
             return Math.Max(0, score);
         }
@@ -197,6 +204,23 @@ namespace GFGGame
                 return partScore + tagScore;
             }
         }
+
+        /// <summary>
+        /// 部件基础分之和
+        /// </summary>
+        /// <param name="roleData"></param>
+        /// <returns></returns>
+        public double GetAllPartBaseScore(FightData roleData)
+        {
+            double baseScore = 0;
+
+            for (int i = 0; i < FightScoreCfgArray.Instance.dataArray.Length; i++)
+            {
+                baseScore += GetPartBaseScore(roleData, i + 1);
+            }
+            return baseScore;
+        }
+
         private double GetRobotPartBaseScore(FightData robotData, int partId)
         {
             double partBaseScore = robotData.itemScoreList[partId - 1];
@@ -365,10 +389,11 @@ namespace GFGGame
         /// </summary>
         /// <param name="mainScore"></param>
         /// <returns></returns>
-        public int GetAllCircleAddScore(double mainScore)
+        public int GetAllCircleAddScore(FightData fightData)
         {
-            //主属性20%的加分
-            return (int)Math.Ceiling(mainScore * ConstScoreSystem.ALL_PERFECT_SCORE);
+            //登峰造极评分 = (部件基础分之和 + 人物基础分)*卓越点击系数 * 3
+            double allPartsBaseScore = GetAllPartBaseScore(fightData);
+            return (int)Math.Ceiling((allPartsBaseScore + (double)fightData.baseScore)* ConstScoreSystem.PERFECT_SCORE * ConstScoreSystem.ALL_CIRCLE_SCORE);
         }
 
 

+ 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;
+        }
     }
 }

+ 3 - 3
GameClient/Assets/Game/HotUpdate/Data/VO/FightData.cs

@@ -7,10 +7,10 @@ namespace GFGGame
     {
         public string name;//玩家名字
         public int scoreType;//本次战斗的主题
-        public int baseScore;//角色等级分数
-        public long leagueSkillScore;//角色雅集技能分
+        public int baseScore;//角色等级分数(人物基础分)
+        public long leagueSkillScore;//角色雅集技能分
         public int cardId;//词牌id
-        public int cardScore;//词牌对应主题的属性分数
+        public int cardScore;//词牌对应主题的属性分数(卡牌属性分数)
         public string[] tags = { };////本次战斗要求的标签
         public List<int> skillLvs = new List<int>();
         public List<float> itemScoreList = new List<float>();//对应服装当前主题的实际分数

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

@@ -9,6 +9,9 @@ namespace UI.CreateRole
         public GComponent target;
         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";
@@ -58,12 +61,18 @@ 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)
         {
             m_loaBg = null;
             m_envelopeModel.Dispose();
             m_envelopeModel = null;
+            m_t_Open = null;
+            m_t_In = null;
+            m_t_AfterOpen = 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;
+        }
     }
 }

+ 2 - 3
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);
                     });
@@ -79,14 +79,13 @@ namespace GFGGame
                     _ui.m_envelopeModel.m_t_Idle.Play(-1, 0, null);
                     break;
                 case State.OPEN:
-                    //_effectUIDic["FX_player"].GetObj().GetComponentInChildren<Animator>().SetTrigger("Close");
                     EffectUIPool.Recycle(_effectUIDic["FX_player"]);
                     _effectUIDic.Remove("FX_player");
                     _effectUIDic.Add("FX_ShanZi", EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_ShanZiEffectHolder, "ui_CreateRoleUI/After_Open", "FX_ShanZi"));
                     _effectUIDic.Add("FX_Niao", EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_NiaoEffectHolder, "ui_CreateRoleUI/After_Open", "FX_Niao"));
                     _ui.m_envelopeModel.m_envelope.target.touchable = false;
                     _ui.m_envelopeModel.m_t_Idle.Stop();
-                    _ui.m_envelopeModel.m_t_Open.Play();
+                    _ui.m_t_Open.Play();
                     break;
             }
         }

+ 5 - 5
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryDialogView.cs

@@ -34,7 +34,7 @@ namespace GFGGame
         private int _wordIndex = 0;
         private bool _isShowLetters;
         private string _currentWords;
-        private string _stroyStartID;
+        private string _storyStartID;
 
         //屏幕效果中
         private Action<object> _onScreenEffectComplete;
@@ -114,7 +114,7 @@ namespace GFGGame
             UpdateSpeedUpBtn();
             _dialogListLookBack = new List<string>();
             object[] datas = viewData as object[];
-            _stroyStartID = (string)datas[0];
+            _storyStartID = (string)datas[0];
             bool skipable = (bool)datas[1];
             _onCompleteStoryDialogCall = (OnCompleteStoryDialogCall)datas[2];
             if (datas.Length > 3)
@@ -133,11 +133,11 @@ namespace GFGGame
 
             _ui.m_btnSkip.visible = skipable;
 
-            ShowNextStep(_stroyStartID);
+            ShowNextStep(_storyStartID);
 
             _ui.m_c1.selectedIndex = 0;
             _ui.m_btnAutoPlay.selected = false;
-            if (_stroyStartID == MainStoryDataManager.priorId)
+            if (_storyStartID == MainStoryDataManager.priorId)
             {
                 _ui.m_c1.selectedIndex = 1;
                 // _ui.m_btnAutoPlay.selected = true;
@@ -192,7 +192,7 @@ namespace GFGGame
         {
             if (_ui.m_btnSkip.enabled)
             {
-                ViewManager.Show<StoryLookBackView>(_stroyStartID);
+                ViewManager.Show<StoryLookBackView>(_storyStartID);
             }
             else
             {

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleScoreView.cs

@@ -447,7 +447,7 @@ namespace GFGGame
             int allCircleScore = 0;
             if (_time >= ConstScoreSystem.LONG_PRESS_TIME / FightDataManager.Instance.fightSpeed || FightDataManager.Instance.autoPlay)
             {
-                allCircleScore = ScoreSystemData.Instance.GetAllCircleAddScore(_mainScore);
+                allCircleScore = ScoreSystemData.Instance.GetAllCircleAddScore(roleData);
             }
             _ui.m_comClick.m_comAllPerfect.m_txtCount.text = allCircleScore.ToString();
             _ui.m_comClick.m_comResult.target.visible = false;

+ 1 - 3
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightTargetScoreView.cs

@@ -603,11 +603,9 @@ namespace GFGGame
             Timers.inst.Remove(ComAllCirclePressTime);
 
             int allCircleScore = 0;
-            int allRargetCircleScore = 0;
             if (_time >= ConstScoreSystem.LONG_PRESS_TIME / FightDataManager.Instance.fightSpeed || _isAutoPlay)
             {
-                allCircleScore = ScoreSystemData.Instance.GetAllCircleAddScore(_mainScore);
-                allRargetCircleScore = ScoreSystemData.Instance.GetAllCircleAddScore(_mainScore);
+                allCircleScore = ScoreSystemData.Instance.GetAllCircleAddScore(roleData);
             }
             _ui.m_comClick.m_comAllPerfect.m_txtCount.text = allCircleScore.ToString();
             _ui.m_comClick.m_comResult.target.visible = false;

+ 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));
         }
 
     }

BIN
GameClient/Assets/ResIn/UI/CreateRole/CreateRole_fui.bytes


BIN
GameClient/Assets/ResIn/UI/Task/Task_atlas0!a.png


BIN
GameClient/Assets/ResIn/UI/Task/Task_atlas0.png


BIN
GameClient/Assets/ResIn/UI/Task/Task_atlas0_1!a.png


BIN
GameClient/Assets/ResIn/UI/Task/Task_atlas0_1.png


BIN
GameClient/Assets/ResIn/UI/Task/Task_atlas0_2!a.png


BIN
GameClient/Assets/ResIn/UI/Task/Task_atlas0_2.png


BIN
GameClient/Assets/ResIn/UI/Task/Task_fui.bytes