Bläddra i källkod

原 点击评分 =(部件基础分+(人物基础分+雅集技能分数+卡牌属性分数)*卓越点击系数)*2.22 改为 点击评分 =(部件基础分+人物基础分)*点击系数
登峰造极评分= (部件基础分之和+人物基础分)*卓越点击系数*3 同理 竞技场战斗公式 和 算战力 也要同步更改

guodong 1 år sedan
förälder
incheckning
db0faff652

+ 3 - 3
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_CIRCLE_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);
-                //(部件基础分+(人物基础分+雅集技能分数+卡牌属性分数)*卓越点击系数)*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);

+ 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_CIRCLE_SCORE);
+            //登峰造极评分 = (部件基础分之和 + 人物基础分)*卓越点击系数 * 3
+            double allPartsBaseScore = GetAllPartBaseScore(fightData);
+            return (int)Math.Ceiling((allPartsBaseScore + (double)fightData.baseScore)* ConstScoreSystem.PERFECT_SCORE * ConstScoreSystem.ALL_CIRCLE_SCORE);
         }
 
 

+ 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>();//对应服装当前主题的实际分数

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