Эх сурвалжийг харах

雅集技能分数加入战斗

zhaoyang 2 жил өмнө
parent
commit
46c0819182

+ 3 - 3
GameClient/Assets/Game/HotUpdate/Data/ArenaDataManager.cs

@@ -350,14 +350,14 @@ namespace GFGGame
                     long itemsScore = GetItemScoreSum(fightDatas[i].itemScoreList);
                     itemSum += itemsScore;
                     clickScore += GetPerfectClickScore(fightDatas[i]);
-                    skillScore += FightDataManager.Instance.GetSkillFightScore(itemsScore, fightDatas[i].baseScore, fightDatas[i].cardId, fightDatas[i].cardScore, fightDatas[i].skillLvs);
+                    skillScore += FightDataManager.Instance.GetSkillFightScore(itemsScore, fightDatas[i].baseScore, fightDatas[i].leagueSkillScore, fightDatas[i].cardId, fightDatas[i].cardScore, fightDatas[i].skillLvs);
                 }
                 else
                 {
                     long itemsScore = GetItemScoreSum(fightDatas[i].itemScoreList);
                     itemSum += itemsScore;
                     clickScore += GetRobotPerfectClickScore(fightDatas[i]);
-                    skillScore += FightDataManager.Instance.GetSkillFightScore(itemsScore, fightDatas[i].baseScore, fightDatas[i].cardId, fightDatas[i].cardScore, fightDatas[i].skillLvs);
+                    skillScore += FightDataManager.Instance.GetSkillFightScore(itemsScore, fightDatas[i].baseScore, fightDatas[i].leagueSkillScore, fightDatas[i].cardId, fightDatas[i].cardScore, fightDatas[i].skillLvs);
                 }
             }
             clickScore = clickScore / ConstScoreSystem.PART_SCORE;
@@ -388,7 +388,7 @@ namespace GFGGame
             foreach (int key in roleData.pardScoreListDic.Keys)
             {
                 double partBaseScore = ScoreSystemData.Instance.GetPartBaseScore(roleData, key);
-                double score = (partBaseScore + (roleData.baseScore + roleData.cardScore) * ConstScoreSystem.PERFECT_SCORE) * ConstScoreSystem.CLICK_SCORE;
+                double score = (partBaseScore + (roleData.baseScore + roleData.leagueSkillScore + roleData.cardScore) * ConstScoreSystem.PERFECT_SCORE) * ConstScoreSystem.CLICK_SCORE;
                 clickScore += score;
             }
             return (long)Math.Ceiling(clickScore);

+ 5 - 4
GameClient/Assets/Game/HotUpdate/Data/FightDataManager.cs

@@ -236,10 +236,11 @@ namespace GFGGame
                 }
             }
             int baseScore = RoleLevelCfgArray.Instance.GetCfg(RoleDataManager.lvl).baseScore;
+            int leagueSkillScore = LeagueDataManager.Instance.GetAllSkillScore(scoreType);
             arrayList.Sort((CardData a, CardData b) =>
             {
-                double scoreA = GetSkillFightScore(itemSum, baseScore, a.id, a.scores[scoreType], SkillDataManager.Instance.GetCardSkillLvs(a.id));
-                double scoreB = GetSkillFightScore(itemSum, baseScore, b.id, b.scores[scoreType], SkillDataManager.Instance.GetCardSkillLvs(b.id));
+                double scoreA = GetSkillFightScore(itemSum, baseScore, leagueSkillScore, a.id, a.scores[scoreType], SkillDataManager.Instance.GetCardSkillLvs(a.id));
+                double scoreB = GetSkillFightScore(itemSum, baseScore, leagueSkillScore, b.id, b.scores[scoreType], SkillDataManager.Instance.GetCardSkillLvs(b.id));
                 if (scoreA < scoreB)
                 {
                     return 1;
@@ -263,10 +264,10 @@ namespace GFGGame
         /// <param name="cardScore"></param>
         /// <param name="skillLvs"></param>
         /// <returns></returns>
-        public long GetSkillFightScore(double itemScoreSum, int baseScore, int cardId, int cardScore, List<int> skillLvs)
+        public long GetSkillFightScore(double itemScoreSum, int baseScore, int leagueSkillScore, int cardId, int cardScore, List<int> skillLvs)
         {
             float skillScore = 0;
-            float skillBaseScore = (long)itemScoreSum + cardScore + baseScore;
+            float skillBaseScore = (long)itemScoreSum + cardScore + baseScore + leagueSkillScore;
             List<PassivitySkillCfg> skillCfgs = PassivitySkillCfgArray.Instance.GetCfgsBycardId(cardId);
             for (int j = 0; j < skillCfgs.Count; j++)
             {

+ 2 - 0
GameClient/Assets/Game/HotUpdate/Data/InstanceZonesDataManager.cs

@@ -85,6 +85,7 @@ namespace GFGGame
             _roleData.name = RoleDataManager.roleName;
             _roleData.scoreType = InstanceZonesDataManager.currentScoreType;
             _roleData.baseScore = RoleLevelCfgArray.Instance.GetCfg(RoleDataManager.lvl).baseScore;
+            _roleData.leagueSkillScore = LeagueDataManager.Instance.GetAllSkillScore(_roleData.scoreType);
             _roleData.cardId = InstanceZonesDataManager.currentCardId; ;//卡牌id
 
             CardData cardData = CardDataManager.GetCardDataById(_roleData.cardId);
@@ -121,6 +122,7 @@ namespace GFGGame
             _targetData.name = fightCfg.targetName;
             _targetData.scoreType = InstanceZonesDataManager.currentScoreType; //本次战斗的主题
             _targetData.baseScore = fightCfg.targetBaseScore;
+            _targetData.leagueSkillScore = 0;
             _targetData.cardId = fightCfg.targetCardId;
             _targetData.cardScore = fightCfg.targetCardScore;
             _targetData.tags = fightCfg.needTagsArr;

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

@@ -80,7 +80,7 @@ namespace GFGGame
         /// <returns></returns>
         public double GetMainScore(FightData roleData)
         {
-            //(部件属性分数+标签分数+人物基础分+卡牌属性分数)*4
+            //(部件属性分数+标签分数+人物基础分+雅集技能分+卡牌属性分数)*4
 
             // int partScore = 0;
             // double tagScore = 0;
@@ -92,7 +92,9 @@ namespace GFGGame
                 baseScore += GetPartBaseScore(roleData, i + 1);
             }
 
-            return (baseScore + roleData.baseScore + roleData.cardScore) * ConstScoreSystem.MAIN_SCORE;
+
+
+            return (baseScore + roleData.baseScore + roleData.leagueSkillScore + roleData.cardScore) * ConstScoreSystem.MAIN_SCORE;
         }
 
         public double GetRobotMainScore(FightData robotData)
@@ -105,8 +107,7 @@ namespace GFGGame
             {
                 partScore += GetRobotPartBaseScore(robotData, i + 1);
             }
-
-            return (partScore + robotData.baseScore + robotData.cardScore) * ConstScoreSystem.MAIN_SCORE;
+            return (partScore + robotData.baseScore + robotData.leagueSkillScore + robotData.cardScore) * ConstScoreSystem.MAIN_SCORE;
         }
 
 
@@ -123,17 +124,18 @@ namespace GFGGame
         {
 
             //部件评分=部件基础分*部件系数
-            //点击评分=(部件基础分+(人物基础分+卡牌属性分数)*点击系数)*2.22   (新点击公式,防止点击优秀却因为未穿衣服结果是0分)
+            //点击评分=(部件基础分+(人物基础分+雅集技能分+卡牌属性分数)*点击系数)*2.22   (新点击公式,防止点击优秀却因为未穿衣服结果是0分)
             //卡牌评分=总属性*技能配表百分比
             double partBaseScore = GetPartBaseScore(roleData, partId);
 
             double partScore = partBaseScore * ConstScoreSystem.PART_SCORE;
 
             int roleScore = roleData.baseScore;
+            int leagueSkillScore = roleData.leagueSkillScore;
             int cardScore = roleData.cardScore;
 
             double clickCoefficient = GetPartItemClickScore(clickType);
-            double clickScore = (partBaseScore + (roleScore + cardScore) * clickCoefficient) * ConstScoreSystem.CLICK_SCORE;
+            double clickScore = (partBaseScore + (roleScore + leagueSkillScore + cardScore) * clickCoefficient) * ConstScoreSystem.CLICK_SCORE;
 
             int score = (int)Math.Ceiling(partScore + clickScore + skillScore);
             Debug.Log("clickScore:" + clickScore + "    score:" + score);
@@ -150,10 +152,11 @@ namespace GFGGame
             double partScore = partBaseScore * ConstScoreSystem.PART_SCORE;
 
             int roleScore = robotData.baseScore;
+            int leagueSkillScore = robotData.leagueSkillScore;
             int cardScore = robotData.cardScore;
 
             double clickCoefficient = GetPartItemClickScore(clickType);
-            double clickScore = (partBaseScore + (cardScore + roleScore) * clickCoefficient) * ConstScoreSystem.CLICK_SCORE;
+            double clickScore = (partBaseScore + (cardScore + leagueSkillScore + roleScore) * clickCoefficient) * ConstScoreSystem.CLICK_SCORE;
 
             int score = (int)Math.Ceiling(partScore + clickScore + skillScore);
             return Math.Max(0, score);

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

@@ -8,13 +8,14 @@ namespace GFGGame
         public string name;//玩家名字
         public int scoreType;//本次战斗的主题
         public int baseScore;//角色等级分数
+        public int leagueSkillScore;//角色雅集技能分
         public int cardId;//卡牌id
         public int cardScore;//卡牌对应主题的属性分数
         public string[] tags = { };////本次战斗要求的标签
         public List<int> skillLvs = new List<int>();
         public List<float> itemScoreList = new List<float>();//对应服装当前主题的实际分数
         public Dictionary<int, int> itemScoreDic = new Dictionary<int, int>();//对应服装当前主题的实际分数
-        public int type = 0;
+        public int type = 0;//FightTargetType
         /**********************************************玩家独立数据*****************************************/
 
         public int headId;//头像id

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

@@ -90,7 +90,7 @@ namespace GFGGame
                     for (int i = 0; i < response.ThemeList.Count; i++)
                     {
                         FightData roleData = GetFightRoleData(response.DressupList.Count <= i ? null : response.DressupList[i], roleInfo, i);
-
+                        roleData.leagueSkillScore = LeagueDataManager.Instance.GetAllSkillScore(response.ThemeList[i]);
                         FightDataManager.Instance.SetItemScoreList(roleData);
                         ScoreSystemData.Instance.SetEquipScoresWithPartId(roleData);
                         ArenaDataManager.Instance.DressupList.Add(roleData);
@@ -426,6 +426,7 @@ namespace GFGGame
             fightData.name = robotProto.Name;
             fightData.scoreType = ArenaDataManager.Instance.ThemeList[index];
             fightData.baseScore = RoleLevelCfgArray.Instance.GetCfg(robotCfg.level).baseScore;
+            fightData.leagueSkillScore = 0;
             fightData.cardId = robotProto.CardIdList.Count <= index ? 0 : robotProto.CardIdList[index];//上赛季没有穿戴数据
             if (index == 0)//只有第一个主题才计算标签
             {

+ 4 - 4
GameClient/Assets/Game/HotUpdate/Views/League/LeagueSkillUpView.cs

@@ -149,9 +149,9 @@ namespace GFGGame
         {
             if (LeagueDataManager.Instance.GetSkillProgressByType(_type) < 100 && LeagueDataManager.Instance.GetSkillProgressByType(_type) > 0)
             {
-                if (LeagueDataManager.Instance.CurLayer == _ui.m_comSkill.m_list.numItems)
+                if (LeagueDataManager.Instance.CurLayer == _ui.m_comSkill.m_list.numItems)//最后一层
                 {
-                    _ui.m_comSkill.m_list.ScrollToView(LeagueDataManager.Instance.CurLayer - 1);
+                    _ui.m_comSkill.m_list.ScrollToView(LeagueDataManager.Instance.CurLayer - 1, true);
                 }
                 else
                 {
@@ -167,11 +167,11 @@ namespace GFGGame
                     }
                     if (isActive)
                     {
-                        _ui.m_comSkill.m_list.ScrollToView(LeagueDataManager.Instance.CurLayer);
+                        _ui.m_comSkill.m_list.ScrollToView(LeagueDataManager.Instance.CurLayer, true);
                     }
                     else
                     {
-                        _ui.m_comSkill.m_list.ScrollToView(LeagueDataManager.Instance.CurLayer - 1);
+                        _ui.m_comSkill.m_list.ScrollToView(LeagueDataManager.Instance.CurLayer - 1, true);
                     }
                 }
                 // _ui.m_list.ScrollToView(LeagueDataManager.Instance.CurLayer - 1);