From a19acb609721b89419fe55785643a0d4f1959368 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 14 十一月 2025 20:03:47 +0800
Subject: [PATCH] 0312 动态检测战力公式
---
Main/Core/GameEngine/Launch/ConfigInitTask.cs | 155 +++++++++++++++++++
Main/System/Main/FightPowerManager.cs | 2
Main/System/Main/FightPowerFormula.cs | 316 +++++++++++++++++++-------------------
3 files changed, 314 insertions(+), 159 deletions(-)
diff --git a/Main/Core/GameEngine/Launch/ConfigInitTask.cs b/Main/Core/GameEngine/Launch/ConfigInitTask.cs
index 350a21b..1fe1122 100644
--- a/Main/Core/GameEngine/Launch/ConfigInitTask.cs
+++ b/Main/Core/GameEngine/Launch/ConfigInitTask.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.IO;
+using System.Linq;
using UnityEngine;
public class ConfigInitTask : LaunchTask
{
@@ -30,8 +31,162 @@
// TODO YYL
// OperationLogCollect.Instance.RecordLauchEvent(3);
// OperationLogCollect.Instance.RecordEvent(3);
+
+#if UNITY_EDITOR
+ var config = FuncConfigConfig.Get("HeroAttrFormula");
+ var propertyFormula = config.Numerical1;
+ var fightPropertyFormula = config.Numerical2;
+ var fightPowerFormula = config.Numerical3;
+ var skillFightPowerFormula = config.Numerical4;
+
+ //璇诲彇鏂囦欢 FightPowerFormula.cs鏂囦欢锛岄�氳繃鍏紡瀛楃涓茬敓鎴愪唬鐮�
+ var filePath = "Assets/Scripts/Main/System/Main/FightPowerFormula.cs";
+ var fileContent = File.ReadAllText(filePath);
+
+ // 鐢熸垚鏂扮殑浠g爜鍐呭
+ var newContent = GenerateFightPowerFormulaCode(propertyFormula, fightPropertyFormula, fightPowerFormula, skillFightPowerFormula);
+
+ // 濡傛灉鍐呭鏈夊彉鍖栵紝鍒欏啓鍏ユ枃浠�
+ if (newContent != fileContent)
+ {
+ File.WriteAllText(filePath, newContent);
+ Debug.LogError("鎴樻枟鍏紡鏈夊彉鏇� FightPowerFormula.cs 宸叉牴鎹厤缃叕寮忛噸鏂扮敓鎴�, 璇锋彁浜や唬鐮侊紒");
+ }
+ else
+ {
+ Debug.Log("FightPowerFormula.cs 鍐呭鏈彉鍖栵紝鏃犻渶閲嶆柊鐢熸垚");
+ }
+
+#endif
}
+#if UNITY_EDITOR
+ private string GenerateFightPowerFormulaCode(string propertyFormula, string fightPropertyFormula, string fightPowerFormula, string skillFightPowerFormula)
+ {
+ // 鎻愬彇鍙橀噺鍚�
+ var propertyVariables = ExtractVariables(propertyFormula);
+ var fightPropertyVariables = ExtractVariables(fightPropertyFormula);
+ var fightPowerVariables = ExtractVariables(fightPowerFormula);
+ var skillFightPowerVariables = ExtractVariables(skillFightPowerFormula);
+
+ // 澶勭悊鍏紡涓殑绫诲瀷杞崲鎿嶄綔绗�
+ var processedPropertyFormula = ProcessTypeConversionOperators(propertyFormula);
+ var processedFightPropertyFormula = ProcessTypeConversionOperators(fightPropertyFormula);
+ var processedFightPowerFormula = ProcessTypeConversionOperators(fightPowerFormula);
+ var processedSkillFightPowerFormula = ProcessTypeConversionOperators(skillFightPowerFormula);
+
+ // 鐢熸垚浠g爜
+ var code = new System.Text.StringBuilder();
+ code.AppendLine("using System.Collections.Generic;");
+ code.AppendLine();
+ code.AppendLine("public class FightPowerFormula");
+ code.AppendLine("{");
+
+ // 娣诲姞鍏紡娉ㄩ噴
+ code.AppendLine(" // 鍩虹灞炴�у叕寮�");
+ code.AppendLine($" // {propertyFormula}");
+ code.AppendLine(" // 鎴樻枟灞炴�у叕寮�");
+ code.AppendLine($" // {fightPropertyFormula}");
+ code.AppendLine(" // 鎴樻枟鍔涘叕寮�");
+ code.AppendLine($" // {fightPowerFormula}");
+ code.AppendLine(" // 鎶�鑳芥垬鏂楀姏鍏紡");
+ code.AppendLine($" // {skillFightPowerFormula}");
+ code.AppendLine();
+
+ // 鐢熸垚鍩虹灞炴�ц绠楁柟娉�
+ code.AppendLine(" public static double GetBaseAttr(Dictionary<string, double> variables)");
+ code.AppendLine(" {");
+ foreach (var variable in propertyVariables)
+ {
+ code.AppendLine($" double {variable} = variables[\"{variable}\"];");
+ }
+ code.AppendLine();
+ code.AppendLine($" return {processedPropertyFormula};");
+ code.AppendLine(" }");
+ code.AppendLine();
+
+ // 鐢熸垚鎴樻枟灞炴�ц绠楁柟娉�
+ code.AppendLine(" public static double GetFightAttr(Dictionary<string, double> variables)");
+ code.AppendLine(" {");
+ foreach (var variable in fightPropertyVariables)
+ {
+ code.AppendLine($" double {variable} = variables[\"{variable}\"];");
+ }
+ code.AppendLine();
+ code.AppendLine($" return {processedFightPropertyFormula};");
+ code.AppendLine(" }");
+ code.AppendLine();
+
+ // 鐢熸垚鎴樻枟鍔涜绠楁柟娉�
+ code.AppendLine(" public static double GetFightPower(Dictionary<string, double> variables)");
+ code.AppendLine(" {");
+ foreach (var variable in fightPowerVariables)
+ {
+ code.AppendLine($" double {variable} = variables[\"{variable}\"];");
+ }
+ code.AppendLine();
+ code.AppendLine($" return {processedFightPowerFormula};");
+ code.AppendLine(" }");
+ code.AppendLine();
+
+ // 鐢熸垚鎶�鑳芥垬鏂楀姏璁$畻鏂规硶
+ code.AppendLine(" public static double GetSkillsFightPower(Dictionary<string, double> variables)");
+ code.AppendLine(" {");
+ foreach (var variable in skillFightPowerVariables)
+ {
+ code.AppendLine($" double {variable} = variables[\"{variable}\"];");
+ }
+ code.AppendLine();
+ code.AppendLine($" return {processedSkillFightPowerFormula};");
+ code.AppendLine(" }");
+ code.AppendLine();
+
+ code.AppendLine("}");
+
+ return code.ToString();
+ }
+
+ private string ProcessTypeConversionOperators(string formula)
+ {
+ // 灏嗙被鍨嬭浆鎹㈡搷浣滅杞崲涓哄姞鎷彿鐨勫舰寮�
+ var processedFormula = formula;
+
+ // 澶勭悊 long(expression) 杞崲涓� (long)(expression)
+ processedFormula = System.Text.RegularExpressions.Regex.Replace(processedFormula, @"\b(long|int|float|double)\s*\(", "($1)(");
+
+ return processedFormula;
+ }
+
+ private List<string> ExtractVariables(string formula)
+ {
+ var variables = new List<string>();
+ var words = formula.Split(new char[] { ' ', '+', '-', '*', '/', '(', ')', ',', '=', '<', '>', '!', '&', '|', '%', ':' }, StringSplitOptions.RemoveEmptyEntries);
+
+ foreach (var word in words)
+ {
+ // 杩囨护鎺夋暟瀛椼�佽繍绠楃鍜屽叧閿瓧
+ if (!double.TryParse(word, out _) && !IsOperator(word) && !IsKeyword(word) && !variables.Contains(word))
+ {
+ variables.Add(word);
+ }
+ }
+
+ return variables;
+ }
+
+ private bool IsOperator(string word)
+ {
+ var operators = new string[] { "if", "else", "min", "max", "long", "int", "float", "double" };
+ return operators.Contains(word);
+ }
+
+ private bool IsKeyword(string word)
+ {
+ var keywords = new string[] { "return", "var", "class", "public", "private", "static", "void", "using", "namespace" };
+ return keywords.Contains(word);
+ }
+#endif
+
public override void Update()
{
if (done)
diff --git a/Main/System/Main/FightPowerFormula.cs b/Main/System/Main/FightPowerFormula.cs
index 9aca394..57652f9 100644
--- a/Main/System/Main/FightPowerFormula.cs
+++ b/Main/System/Main/FightPowerFormula.cs
@@ -1,158 +1,158 @@
-
-using System.Collections.Generic;
-
-public class FightPowerFormula
-{
- // 鍩虹灞炴�у叕寮�
- // 鎴樻枟灞炴�у叕寮�
- // (lvValue+equipValue+bookValue+realmValue+gubaoValue+hjgValue+horseValue)+(heroSelfValue+lineupHaloValue+starTalentValue+breakLVValue+awakeTalentValue)+fetterValue
- // 鎴樻枟鍔涘叕寮�
- // long(Atk*AtkRatio+MaxHP*MaxHPRatio+Def*DefRatio+(StunRate*StunRateRatio+SuperHitRate*SuperHitRateRatio+ComboRate*ComboRateRatio+MissRate*MissRateRatio+ParryRate*ParryRateRatio+SuckHPPer*SuckHPPerRatio+StunRateDef*StunRateDefRatio+SuperHitRateDef*SuperHitRateDefRatio+ComboRateDef*ComboRateDefRatio+MissRateDef*MissRateDefRatio+ParryRateDef*ParryRateDefRatio+SuckHPPerDef*SuckHPPerDefRatio+FinalDamPer*FinalDamPerRatio+FinalDamPerDef*FinalDamPerDefRatio+PhyDamPer*PhyDamPerRatio+PhyDamPerDef*PhyDamPerDefRatio+MagDamPer*MagDamPerRatio+MagDamPerDef*MagDamPerDefRatio+NormalSkillPer*NormalSkillPerRatio+NormalSkillPerDef*NormalSkillPerDefRatio+AngerSkillPer*AngerSkillPerRatio+AngerSkillPerDef*AngerSkillPerDefRatio+SuperDamPer*SuperDamPerRatio+SuperDamPerDef*SuperDamPerDefRatio+CurePer*CurePerRatio+CurePerDef*CurePerDefRatio+ShieldPer*ShieldPerRatio+ShieldPerDef*ShieldPerDefRatio+DOTPer*DOTPerRatio+DOTPerDef*DOTPerDefRatio+WeiFinalDamPer*WeiFinalDamPerRatio+WeiFinalDamPerDef*WeiFinalDamPerDefRatio+ShuFinalDamPer*ShuFinalDamPerRatio+ShuFinalDamPerDef*ShuFinalDamPerDefRatio+WuFinalDamPer*WuFinalDamPerRatio+WuFinalDamPerDef*WuFinalDamPerDefRatio+QunFinalDamPer*QunFinalDamPerRatio+QunFinalDamPerDef*QunFinalDamPerDefRatio)/100.0-55000)
-
- public static double GetBaseAttr(Dictionary<string, double> variables)
- {
-
- double lvValue = variables["lvValue"];
- double equipValue = variables["equipValue"];
- double bookValue = variables["bookValue"];
- double realmValue = variables["realmValue"];
- double gubaoValue = variables["gubaoValue"];
- double hjgValue = variables["hjgValue"];
- double horseValue = variables["horseValue"];
- double lineupHaloPer = variables["lineupHaloPer"];
- double bookPer = variables["bookPer"];
- double realmPer = variables["realmPer"];
- double gubaoPer = variables["gubaoPer"];
- double hjgPer = variables["hjgPer"];
- double horsePer = variables["horsePer"];
- double lineupInitAddPer = variables["lineupInitAddPer"];
- double lineupLVAddPer = variables["lineupLVAddPer"];
- double lineupBreakLVAddPer = variables["lineupBreakLVAddPer"];
- double lineupStarAddPer = variables["lineupStarAddPer"];
- double inheritPer = variables["inheritPer"];
- double fetterPer = variables["fetterPer"];
- double starTalentPer = variables["starTalentPer"];
- double breakLVPer = variables["breakLVPer"];
- double awakeTalentPer = variables["awakeTalentPer"];
- double heroSelfValue = variables["heroSelfValue"];
-
- return (lvValue + equipValue + bookValue + realmValue + gubaoValue + hjgValue + horseValue) * (1 + lineupHaloPer + bookPer + realmPer + gubaoPer + hjgPer + horsePer + lineupInitAddPer + lineupLVAddPer + lineupBreakLVAddPer + lineupStarAddPer) * (inheritPer + fetterPer + starTalentPer + breakLVPer + awakeTalentPer) + heroSelfValue;
- }
-
- public static double GetFightAttr(Dictionary<string, double> variables)
- {
- double lvValue = variables["lvValue"];
- double equipValue = variables["equipValue"];
- double bookValue = variables["bookValue"];
- double realmValue = variables["realmValue"];
- double gubaoValue = variables["gubaoValue"];
- double hjgValue = variables["hjgValue"];
- double horseValue = variables["horseValue"];
- double heroSelfValue = variables["heroSelfValue"];
- double lineupHaloValue = variables["lineupHaloValue"];
- double starTalentValue = variables["starTalentValue"];
- double breakLVValue = variables["breakLVValue"];
- double awakeTalentValue = variables["awakeTalentValue"];
- double fetterValue = variables["fetterValue"];
-
- return lvValue + equipValue + bookValue + realmValue + gubaoValue + hjgValue + horseValue + (heroSelfValue + lineupHaloValue + starTalentValue + breakLVValue + awakeTalentValue) + fetterValue;
- }
-
- public static double GetFightPower(Dictionary<string, double> variables)
- {
- double Atk = variables["Atk"];
- double AtkRatio = variables["AtkRatio"];
- double MaxHP = variables["MaxHP"];
- double MaxHPRatio = variables["MaxHPRatio"];
- double Def = variables["Def"];
- double DefRatio = variables["DefRatio"];
- double StunRate = variables["StunRate"];
- double StunRateRatio = variables["StunRateRatio"];
- double SuperHitRate = variables["SuperHitRate"];
- double SuperHitRateRatio = variables["SuperHitRateRatio"];
- double ComboRate = variables["ComboRate"];
- double ComboRateRatio = variables["ComboRateRatio"];
- double MissRate = variables["MissRate"];
- double MissRateRatio = variables["MissRateRatio"];
- double ParryRate = variables["ParryRate"];
- double ParryRateRatio = variables["ParryRateRatio"];
- double SuckHPPer = variables["SuckHPPer"];
- double SuckHPPerRatio = variables["SuckHPPerRatio"];
- double StunRateDef = variables["StunRateDef"];
- double StunRateDefRatio = variables["StunRateDefRatio"];
- double SuperHitRateDef = variables["SuperHitRateDef"];
- double SuperHitRateDefRatio = variables["SuperHitRateDefRatio"];
- double ComboRateDef = variables["ComboRateDef"];
- double ComboRateDefRatio = variables["ComboRateDefRatio"];
- double MissRateDef = variables["MissRateDef"];
- double MissRateDefRatio = variables["MissRateDefRatio"];
- double ParryRateDef = variables["ParryRateDef"];
- double ParryRateDefRatio = variables["ParryRateDefRatio"];
- double SuckHPPerDef = variables["SuckHPPerDef"];
- double SuckHPPerDefRatio = variables["SuckHPPerDefRatio"];
- double FinalDamPer = variables["FinalDamPer"];
- double FinalDamPerRatio = variables["FinalDamPerRatio"];
- double FinalDamPerDef = variables["FinalDamPerDef"];
- double FinalDamPerDefRatio = variables["FinalDamPerDefRatio"];
- double PhyDamPer = variables["PhyDamPer"];
- double PhyDamPerRatio = variables["PhyDamPerRatio"];
- double PhyDamPerDef = variables["PhyDamPerDef"];
- double PhyDamPerDefRatio = variables["PhyDamPerDefRatio"];
- double MagDamPer = variables["MagDamPer"];
- double MagDamPerRatio = variables["MagDamPerRatio"];
- double MagDamPerDef = variables["MagDamPerDef"];
- double MagDamPerDefRatio = variables["MagDamPerDefRatio"];
- double NormalSkillPer = variables["NormalSkillPer"];
- double NormalSkillPerRatio = variables["NormalSkillPerRatio"];
- double NormalSkillPerDef = variables["NormalSkillPerDef"];
- double NormalSkillPerDefRatio = variables["NormalSkillPerDefRatio"];
- double AngerSkillPer = variables["AngerSkillPer"];
- double AngerSkillPerRatio = variables["AngerSkillPerRatio"];
- double AngerSkillPerDef = variables["AngerSkillPerDef"];
- double AngerSkillPerDefRatio = variables["AngerSkillPerDefRatio"];
- double SuperDamPer = variables["SuperDamPer"];
- double SuperDamPerRatio = variables["SuperDamPerRatio"];
- double SuperDamPerDef = variables["SuperDamPerDef"];
- double SuperDamPerDefRatio = variables["SuperDamPerDefRatio"];
- double CurePer = variables["CurePer"];
- double CurePerRatio = variables["CurePerRatio"];
- double CurePerDef = variables["CurePerDef"];
- double CurePerDefRatio = variables["CurePerDefRatio"];
- double ShieldPer = variables["ShieldPer"];
- double ShieldPerRatio = variables["ShieldPerRatio"];
- double ShieldPerDef = variables["ShieldPerDef"];
- double ShieldPerDefRatio = variables["ShieldPerDefRatio"];
- double DOTPer = variables["DOTPer"];
- double DOTPerRatio = variables["DOTPerRatio"];
- double DOTPerDef = variables["DOTPerDef"];
- double DOTPerDefRatio = variables["DOTPerDefRatio"];
- double WeiFinalDamPer = variables["WeiFinalDamPer"];
- double WeiFinalDamPerRatio = variables["WeiFinalDamPerRatio"];
- double WeiFinalDamPerDef = variables["WeiFinalDamPerDef"];
- double WeiFinalDamPerDefRatio = variables["WeiFinalDamPerDefRatio"];
- double ShuFinalDamPer = variables["ShuFinalDamPer"];
- double ShuFinalDamPerRatio = variables["ShuFinalDamPerRatio"];
- double ShuFinalDamPerDef = variables["ShuFinalDamPerDef"];
- double ShuFinalDamPerDefRatio = variables["ShuFinalDamPerDefRatio"];
- double WuFinalDamPer = variables["WuFinalDamPer"];
- double WuFinalDamPerRatio = variables["WuFinalDamPerRatio"];
- double WuFinalDamPerDef = variables["WuFinalDamPerDef"];
- double WuFinalDamPerDefRatio = variables["WuFinalDamPerDefRatio"];
- double QunFinalDamPer = variables["QunFinalDamPer"];
- double QunFinalDamPerRatio = variables["QunFinalDamPerRatio"];
- double QunFinalDamPerDef = variables["QunFinalDamPerDef"];
- double QunFinalDamPerDefRatio = variables["QunFinalDamPerDefRatio"];
-
-
-
- return Atk * AtkRatio + MaxHP * MaxHPRatio + Def * DefRatio + (StunRate * StunRateRatio + SuperHitRate * SuperHitRateRatio + ComboRate * ComboRateRatio + MissRate * MissRateRatio + ParryRate * ParryRateRatio + SuckHPPer * SuckHPPerRatio + StunRateDef * StunRateDefRatio + SuperHitRateDef * SuperHitRateDefRatio + ComboRateDef * ComboRateDefRatio + MissRateDef * MissRateDefRatio + ParryRateDef * ParryRateDefRatio + SuckHPPerDef * SuckHPPerDefRatio + FinalDamPer * FinalDamPerRatio + FinalDamPerDef * FinalDamPerDefRatio + PhyDamPer * PhyDamPerRatio + PhyDamPerDef * PhyDamPerDefRatio + MagDamPer * MagDamPerRatio + MagDamPerDef * MagDamPerDefRatio + NormalSkillPer * NormalSkillPerRatio + NormalSkillPerDef * NormalSkillPerDefRatio + AngerSkillPer * AngerSkillPerRatio + AngerSkillPerDef * AngerSkillPerDefRatio + SuperDamPer * SuperDamPerRatio + SuperDamPerDef * SuperDamPerDefRatio + CurePer * CurePerRatio + CurePerDef * CurePerDefRatio + ShieldPer * ShieldPerRatio + ShieldPerDef * ShieldPerDefRatio + DOTPer * DOTPerRatio + DOTPerDef * DOTPerDefRatio + WeiFinalDamPer * WeiFinalDamPerRatio + WeiFinalDamPerDef * WeiFinalDamPerDefRatio + ShuFinalDamPer * ShuFinalDamPerRatio + ShuFinalDamPerDef * ShuFinalDamPerDefRatio + WuFinalDamPer * WuFinalDamPerRatio + WuFinalDamPerDef * WuFinalDamPerDefRatio + QunFinalDamPer * QunFinalDamPerRatio + QunFinalDamPerDef * QunFinalDamPerDefRatio) / 100.0 - 55000;
-
- }
-
- public static double GetSkillsFightPower(Dictionary<string, double> variables)
- {
- double SkillPower = variables["SkillPower"];
- double OfficialLV = variables["OfficialLV"];
- return SkillPower * OfficialLV;
- }
-}
\ No newline at end of file
+using System.Collections.Generic;
+
+public class FightPowerFormula
+{
+ // 鍩虹灞炴�у叕寮�
+ // (lvValue+equipValue+bookValue+realmValue+gubaoValue+hjgValue+horseValue)*(1+lineupHaloPer+bookPer+realmPer+gubaoPer+hjgPer+horsePer+lineupInitAddPer+lineupLVAddPer+lineupBreakLVAddPer+lineupStarAddPer)*(inheritPer+fetterPer+starTalentPer+breakLVPer+awakeTalentPer)+heroSelfValue
+ // 鎴樻枟灞炴�у叕寮�
+ // (lvValue+equipValue+bookValue+realmValue+gubaoValue+hjgValue+horseValue)+(heroSelfValue+lineupHaloValue+starTalentValue+breakLVValue+awakeTalentValue)+fetterValue
+ // 鎴樻枟鍔涘叕寮�
+ // long(Atk*AtkRatio+MaxHP*MaxHPRatio+Def*DefRatio+(StunRate*StunRateRatio+SuperHitRate*SuperHitRateRatio+ComboRate*ComboRateRatio+MissRate*MissRateRatio+ParryRate*ParryRateRatio+SuckHPPer*SuckHPPerRatio+StunRateDef*StunRateDefRatio+SuperHitRateDef*SuperHitRateDefRatio+ComboRateDef*ComboRateDefRatio+MissRateDef*MissRateDefRatio+ParryRateDef*ParryRateDefRatio+SuckHPPerDef*SuckHPPerDefRatio+FinalDamPer*FinalDamPerRatio+FinalDamPerDef*FinalDamPerDefRatio+PhyDamPer*PhyDamPerRatio+PhyDamPerDef*PhyDamPerDefRatio+MagDamPer*MagDamPerRatio+MagDamPerDef*MagDamPerDefRatio+NormalSkillPer*NormalSkillPerRatio+NormalSkillPerDef*NormalSkillPerDefRatio+AngerSkillPer*AngerSkillPerRatio+AngerSkillPerDef*AngerSkillPerDefRatio+SuperDamPer*SuperDamPerRatio+SuperDamPerDef*SuperDamPerDefRatio+CurePer*CurePerRatio+CurePerDef*CurePerDefRatio+ShieldPer*ShieldPerRatio+ShieldPerDef*ShieldPerDefRatio+DOTPer*DOTPerRatio+DOTPerDef*DOTPerDefRatio+WeiFinalDamPer*WeiFinalDamPerRatio+WeiFinalDamPerDef*WeiFinalDamPerDefRatio+ShuFinalDamPer*ShuFinalDamPerRatio+ShuFinalDamPerDef*ShuFinalDamPerDefRatio+WuFinalDamPer*WuFinalDamPerRatio+WuFinalDamPerDef*WuFinalDamPerDefRatio+QunFinalDamPer*QunFinalDamPerRatio+QunFinalDamPerDef*QunFinalDamPerDefRatio)/100.0-55000)
+ // 鎶�鑳芥垬鏂楀姏鍏紡
+ // SkillPower*OfficialLV
+
+ public static double GetBaseAttr(Dictionary<string, double> variables)
+ {
+ double lvValue = variables["lvValue"];
+ double equipValue = variables["equipValue"];
+ double bookValue = variables["bookValue"];
+ double realmValue = variables["realmValue"];
+ double gubaoValue = variables["gubaoValue"];
+ double hjgValue = variables["hjgValue"];
+ double horseValue = variables["horseValue"];
+ double lineupHaloPer = variables["lineupHaloPer"];
+ double bookPer = variables["bookPer"];
+ double realmPer = variables["realmPer"];
+ double gubaoPer = variables["gubaoPer"];
+ double hjgPer = variables["hjgPer"];
+ double horsePer = variables["horsePer"];
+ double lineupInitAddPer = variables["lineupInitAddPer"];
+ double lineupLVAddPer = variables["lineupLVAddPer"];
+ double lineupBreakLVAddPer = variables["lineupBreakLVAddPer"];
+ double lineupStarAddPer = variables["lineupStarAddPer"];
+ double inheritPer = variables["inheritPer"];
+ double fetterPer = variables["fetterPer"];
+ double starTalentPer = variables["starTalentPer"];
+ double breakLVPer = variables["breakLVPer"];
+ double awakeTalentPer = variables["awakeTalentPer"];
+ double heroSelfValue = variables["heroSelfValue"];
+
+ return (lvValue+equipValue+bookValue+realmValue+gubaoValue+hjgValue+horseValue)*(1+lineupHaloPer+bookPer+realmPer+gubaoPer+hjgPer+horsePer+lineupInitAddPer+lineupLVAddPer+lineupBreakLVAddPer+lineupStarAddPer)*(inheritPer+fetterPer+starTalentPer+breakLVPer+awakeTalentPer)+heroSelfValue;
+ }
+
+ public static double GetFightAttr(Dictionary<string, double> variables)
+ {
+ double lvValue = variables["lvValue"];
+ double equipValue = variables["equipValue"];
+ double bookValue = variables["bookValue"];
+ double realmValue = variables["realmValue"];
+ double gubaoValue = variables["gubaoValue"];
+ double hjgValue = variables["hjgValue"];
+ double horseValue = variables["horseValue"];
+ double heroSelfValue = variables["heroSelfValue"];
+ double lineupHaloValue = variables["lineupHaloValue"];
+ double starTalentValue = variables["starTalentValue"];
+ double breakLVValue = variables["breakLVValue"];
+ double awakeTalentValue = variables["awakeTalentValue"];
+ double fetterValue = variables["fetterValue"];
+
+ return (lvValue+equipValue+bookValue+realmValue+gubaoValue+hjgValue+horseValue)+(heroSelfValue+lineupHaloValue+starTalentValue+breakLVValue+awakeTalentValue)+fetterValue;
+ }
+
+ public static double GetFightPower(Dictionary<string, double> variables)
+ {
+ double Atk = variables["Atk"];
+ double AtkRatio = variables["AtkRatio"];
+ double MaxHP = variables["MaxHP"];
+ double MaxHPRatio = variables["MaxHPRatio"];
+ double Def = variables["Def"];
+ double DefRatio = variables["DefRatio"];
+ double StunRate = variables["StunRate"];
+ double StunRateRatio = variables["StunRateRatio"];
+ double SuperHitRate = variables["SuperHitRate"];
+ double SuperHitRateRatio = variables["SuperHitRateRatio"];
+ double ComboRate = variables["ComboRate"];
+ double ComboRateRatio = variables["ComboRateRatio"];
+ double MissRate = variables["MissRate"];
+ double MissRateRatio = variables["MissRateRatio"];
+ double ParryRate = variables["ParryRate"];
+ double ParryRateRatio = variables["ParryRateRatio"];
+ double SuckHPPer = variables["SuckHPPer"];
+ double SuckHPPerRatio = variables["SuckHPPerRatio"];
+ double StunRateDef = variables["StunRateDef"];
+ double StunRateDefRatio = variables["StunRateDefRatio"];
+ double SuperHitRateDef = variables["SuperHitRateDef"];
+ double SuperHitRateDefRatio = variables["SuperHitRateDefRatio"];
+ double ComboRateDef = variables["ComboRateDef"];
+ double ComboRateDefRatio = variables["ComboRateDefRatio"];
+ double MissRateDef = variables["MissRateDef"];
+ double MissRateDefRatio = variables["MissRateDefRatio"];
+ double ParryRateDef = variables["ParryRateDef"];
+ double ParryRateDefRatio = variables["ParryRateDefRatio"];
+ double SuckHPPerDef = variables["SuckHPPerDef"];
+ double SuckHPPerDefRatio = variables["SuckHPPerDefRatio"];
+ double FinalDamPer = variables["FinalDamPer"];
+ double FinalDamPerRatio = variables["FinalDamPerRatio"];
+ double FinalDamPerDef = variables["FinalDamPerDef"];
+ double FinalDamPerDefRatio = variables["FinalDamPerDefRatio"];
+ double PhyDamPer = variables["PhyDamPer"];
+ double PhyDamPerRatio = variables["PhyDamPerRatio"];
+ double PhyDamPerDef = variables["PhyDamPerDef"];
+ double PhyDamPerDefRatio = variables["PhyDamPerDefRatio"];
+ double MagDamPer = variables["MagDamPer"];
+ double MagDamPerRatio = variables["MagDamPerRatio"];
+ double MagDamPerDef = variables["MagDamPerDef"];
+ double MagDamPerDefRatio = variables["MagDamPerDefRatio"];
+ double NormalSkillPer = variables["NormalSkillPer"];
+ double NormalSkillPerRatio = variables["NormalSkillPerRatio"];
+ double NormalSkillPerDef = variables["NormalSkillPerDef"];
+ double NormalSkillPerDefRatio = variables["NormalSkillPerDefRatio"];
+ double AngerSkillPer = variables["AngerSkillPer"];
+ double AngerSkillPerRatio = variables["AngerSkillPerRatio"];
+ double AngerSkillPerDef = variables["AngerSkillPerDef"];
+ double AngerSkillPerDefRatio = variables["AngerSkillPerDefRatio"];
+ double SuperDamPer = variables["SuperDamPer"];
+ double SuperDamPerRatio = variables["SuperDamPerRatio"];
+ double SuperDamPerDef = variables["SuperDamPerDef"];
+ double SuperDamPerDefRatio = variables["SuperDamPerDefRatio"];
+ double CurePer = variables["CurePer"];
+ double CurePerRatio = variables["CurePerRatio"];
+ double CurePerDef = variables["CurePerDef"];
+ double CurePerDefRatio = variables["CurePerDefRatio"];
+ double ShieldPer = variables["ShieldPer"];
+ double ShieldPerRatio = variables["ShieldPerRatio"];
+ double ShieldPerDef = variables["ShieldPerDef"];
+ double ShieldPerDefRatio = variables["ShieldPerDefRatio"];
+ double DOTPer = variables["DOTPer"];
+ double DOTPerRatio = variables["DOTPerRatio"];
+ double DOTPerDef = variables["DOTPerDef"];
+ double DOTPerDefRatio = variables["DOTPerDefRatio"];
+ double WeiFinalDamPer = variables["WeiFinalDamPer"];
+ double WeiFinalDamPerRatio = variables["WeiFinalDamPerRatio"];
+ double WeiFinalDamPerDef = variables["WeiFinalDamPerDef"];
+ double WeiFinalDamPerDefRatio = variables["WeiFinalDamPerDefRatio"];
+ double ShuFinalDamPer = variables["ShuFinalDamPer"];
+ double ShuFinalDamPerRatio = variables["ShuFinalDamPerRatio"];
+ double ShuFinalDamPerDef = variables["ShuFinalDamPerDef"];
+ double ShuFinalDamPerDefRatio = variables["ShuFinalDamPerDefRatio"];
+ double WuFinalDamPer = variables["WuFinalDamPer"];
+ double WuFinalDamPerRatio = variables["WuFinalDamPerRatio"];
+ double WuFinalDamPerDef = variables["WuFinalDamPerDef"];
+ double WuFinalDamPerDefRatio = variables["WuFinalDamPerDefRatio"];
+ double QunFinalDamPer = variables["QunFinalDamPer"];
+ double QunFinalDamPerRatio = variables["QunFinalDamPerRatio"];
+ double QunFinalDamPerDef = variables["QunFinalDamPerDef"];
+ double QunFinalDamPerDefRatio = variables["QunFinalDamPerDefRatio"];
+
+ return (long)(Atk*AtkRatio+MaxHP*MaxHPRatio+Def*DefRatio+(StunRate*StunRateRatio+SuperHitRate*SuperHitRateRatio+ComboRate*ComboRateRatio+MissRate*MissRateRatio+ParryRate*ParryRateRatio+SuckHPPer*SuckHPPerRatio+StunRateDef*StunRateDefRatio+SuperHitRateDef*SuperHitRateDefRatio+ComboRateDef*ComboRateDefRatio+MissRateDef*MissRateDefRatio+ParryRateDef*ParryRateDefRatio+SuckHPPerDef*SuckHPPerDefRatio+FinalDamPer*FinalDamPerRatio+FinalDamPerDef*FinalDamPerDefRatio+PhyDamPer*PhyDamPerRatio+PhyDamPerDef*PhyDamPerDefRatio+MagDamPer*MagDamPerRatio+MagDamPerDef*MagDamPerDefRatio+NormalSkillPer*NormalSkillPerRatio+NormalSkillPerDef*NormalSkillPerDefRatio+AngerSkillPer*AngerSkillPerRatio+AngerSkillPerDef*AngerSkillPerDefRatio+SuperDamPer*SuperDamPerRatio+SuperDamPerDef*SuperDamPerDefRatio+CurePer*CurePerRatio+CurePerDef*CurePerDefRatio+ShieldPer*ShieldPerRatio+ShieldPerDef*ShieldPerDefRatio+DOTPer*DOTPerRatio+DOTPerDef*DOTPerDefRatio+WeiFinalDamPer*WeiFinalDamPerRatio+WeiFinalDamPerDef*WeiFinalDamPerDefRatio+ShuFinalDamPer*ShuFinalDamPerRatio+ShuFinalDamPerDef*ShuFinalDamPerDefRatio+WuFinalDamPer*WuFinalDamPerRatio+WuFinalDamPerDef*WuFinalDamPerDefRatio+QunFinalDamPer*QunFinalDamPerRatio+QunFinalDamPerDef*QunFinalDamPerDefRatio)/100.0-55000);
+ }
+
+ public static double GetSkillsFightPower(Dictionary<string, double> variables)
+ {
+ double SkillPower = variables["SkillPower"];
+ double OfficialLV = variables["OfficialLV"];
+
+ return SkillPower*OfficialLV;
+ }
+
+}
diff --git a/Main/System/Main/FightPowerManager.cs b/Main/System/Main/FightPowerManager.cs
index a73bea9..9af704d 100644
--- a/Main/System/Main/FightPowerManager.cs
+++ b/Main/System/Main/FightPowerManager.cs
@@ -413,7 +413,7 @@
}
#if UNITY_EDITOR
- // Debug.Log("鎴樺姏锛氳绠楀畬姣� " + fightPower);
+ Debug.Log("鎴樺姏锛氳绠楀畬姣� " + fightPower);
#endif
return fightPower;
}
--
Gitblit v1.8.0