From 167720a142f556bc635c2e37493dc2def984cf1c Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 13 一月 2026 12:30:15 +0800
Subject: [PATCH] 419 【内政】命格系统 - 先攻属性

---
 Main/Config/Configs/FightPowerRatioConfig.cs |   93 ++++++++++++++++++++++++----------------------
 Main/System/Main/FightPowerManager.cs        |    2 +
 Main/System/Main/FightPowerFormula.cs        |    8 +++-
 3 files changed, 56 insertions(+), 47 deletions(-)

diff --git a/Main/Config/Configs/FightPowerRatioConfig.cs b/Main/Config/Configs/FightPowerRatioConfig.cs
index 09d875c..64e53e7 100644
--- a/Main/Config/Configs/FightPowerRatioConfig.cs
+++ b/Main/Config/Configs/FightPowerRatioConfig.cs
@@ -1,6 +1,6 @@
 锘�//--------------------------------------------------------
 //    [Author]:           YYL
-//    [  Date ]:           Tuesday, January 6, 2026
+//    [  Date ]:           2026骞�1鏈�13鏃�
 //--------------------------------------------------------
 
 using System.Collections.Generic;
@@ -20,6 +20,7 @@
 	public float AtkRatio;
 	public float MaxHPRatio;
 	public float DefRatio;
+	public float AtkSpeedRatio;
 	public float StunRateRatio;
 	public float SuperHitRateRatio;
 	public float ComboRateRatio;
@@ -83,93 +84,95 @@
 
 			float.TryParse(tables[3],out DefRatio); 
 
-			float.TryParse(tables[4],out StunRateRatio); 
+			float.TryParse(tables[4],out AtkSpeedRatio); 
 
-			float.TryParse(tables[5],out SuperHitRateRatio); 
+			float.TryParse(tables[5],out StunRateRatio); 
 
-			float.TryParse(tables[6],out ComboRateRatio); 
+			float.TryParse(tables[6],out SuperHitRateRatio); 
 
-			float.TryParse(tables[7],out MissRateRatio); 
+			float.TryParse(tables[7],out ComboRateRatio); 
 
-			float.TryParse(tables[8],out ParryRateRatio); 
+			float.TryParse(tables[8],out MissRateRatio); 
 
-			float.TryParse(tables[9],out SuckHPPerRatio); 
+			float.TryParse(tables[9],out ParryRateRatio); 
 
-			float.TryParse(tables[10],out StunRateDefRatio); 
+			float.TryParse(tables[10],out SuckHPPerRatio); 
 
-			float.TryParse(tables[11],out SuperHitRateDefRatio); 
+			float.TryParse(tables[11],out StunRateDefRatio); 
 
-			float.TryParse(tables[12],out ComboRateDefRatio); 
+			float.TryParse(tables[12],out SuperHitRateDefRatio); 
 
-			float.TryParse(tables[13],out MissRateDefRatio); 
+			float.TryParse(tables[13],out ComboRateDefRatio); 
 
-			float.TryParse(tables[14],out ParryRateDefRatio); 
+			float.TryParse(tables[14],out MissRateDefRatio); 
 
-			float.TryParse(tables[15],out SuckHPPerDefRatio); 
+			float.TryParse(tables[15],out ParryRateDefRatio); 
 
-			float.TryParse(tables[16],out FinalDamPerRatio); 
+			float.TryParse(tables[16],out SuckHPPerDefRatio); 
 
-			float.TryParse(tables[17],out FinalDamPerDefRatio); 
+			float.TryParse(tables[17],out FinalDamPerRatio); 
 
-			float.TryParse(tables[18],out PhyDamPerRatio); 
+			float.TryParse(tables[18],out FinalDamPerDefRatio); 
 
-			float.TryParse(tables[19],out PhyDamPerDefRatio); 
+			float.TryParse(tables[19],out PhyDamPerRatio); 
 
-			float.TryParse(tables[20],out MagDamPerRatio); 
+			float.TryParse(tables[20],out PhyDamPerDefRatio); 
 
-			float.TryParse(tables[21],out MagDamPerDefRatio); 
+			float.TryParse(tables[21],out MagDamPerRatio); 
 
-			float.TryParse(tables[22],out NormalSkillPerRatio); 
+			float.TryParse(tables[22],out MagDamPerDefRatio); 
 
-			float.TryParse(tables[23],out NormalSkillPerDefRatio); 
+			float.TryParse(tables[23],out NormalSkillPerRatio); 
 
-			float.TryParse(tables[24],out AngerSkillPerRatio); 
+			float.TryParse(tables[24],out NormalSkillPerDefRatio); 
 
-			float.TryParse(tables[25],out AngerSkillPerDefRatio); 
+			float.TryParse(tables[25],out AngerSkillPerRatio); 
 
-			float.TryParse(tables[26],out SuperDamPerRatio); 
+			float.TryParse(tables[26],out AngerSkillPerDefRatio); 
 
-			float.TryParse(tables[27],out SuperDamPerDefRatio); 
+			float.TryParse(tables[27],out SuperDamPerRatio); 
 
-			float.TryParse(tables[28],out CurePerRatio); 
+			float.TryParse(tables[28],out SuperDamPerDefRatio); 
 
-			float.TryParse(tables[29],out CurePerDefRatio); 
+			float.TryParse(tables[29],out CurePerRatio); 
 
-			float.TryParse(tables[30],out ShieldPerRatio); 
+			float.TryParse(tables[30],out CurePerDefRatio); 
 
-			float.TryParse(tables[31],out ShieldPerDefRatio); 
+			float.TryParse(tables[31],out ShieldPerRatio); 
 
-			float.TryParse(tables[32],out DOTPerRatio); 
+			float.TryParse(tables[32],out ShieldPerDefRatio); 
 
-			float.TryParse(tables[33],out DOTPerDefRatio); 
+			float.TryParse(tables[33],out DOTPerRatio); 
 
-			float.TryParse(tables[34],out WeiFinalDamPerRatio); 
+			float.TryParse(tables[34],out DOTPerDefRatio); 
 
-			float.TryParse(tables[35],out WeiFinalDamPerDefRatio); 
+			float.TryParse(tables[35],out WeiFinalDamPerRatio); 
 
-			float.TryParse(tables[36],out ShuFinalDamPerRatio); 
+			float.TryParse(tables[36],out WeiFinalDamPerDefRatio); 
 
-			float.TryParse(tables[37],out ShuFinalDamPerDefRatio); 
+			float.TryParse(tables[37],out ShuFinalDamPerRatio); 
 
-			float.TryParse(tables[38],out WuFinalDamPerRatio); 
+			float.TryParse(tables[38],out ShuFinalDamPerDefRatio); 
 
-			float.TryParse(tables[39],out WuFinalDamPerDefRatio); 
+			float.TryParse(tables[39],out WuFinalDamPerRatio); 
 
-			float.TryParse(tables[40],out QunFinalDamPerRatio); 
+			float.TryParse(tables[40],out WuFinalDamPerDefRatio); 
 
-			float.TryParse(tables[41],out QunFinalDamPerDefRatio); 
+			float.TryParse(tables[41],out QunFinalDamPerRatio); 
 
-			float.TryParse(tables[42],out PVPDamPerRatio); 
+			float.TryParse(tables[42],out QunFinalDamPerDefRatio); 
 
-			float.TryParse(tables[43],out PVPDamPerDefRatio); 
+			float.TryParse(tables[43],out PVPDamPerRatio); 
 
-			float.TryParse(tables[44],out GuanchuanRatio); 
+			float.TryParse(tables[44],out PVPDamPerDefRatio); 
 
-			float.TryParse(tables[45],out GuanchuanDefRatio); 
+			float.TryParse(tables[45],out GuanchuanRatio); 
 
-			float.TryParse(tables[46],out ZhaojiaRatio); 
+			float.TryParse(tables[46],out GuanchuanDefRatio); 
 
-			float.TryParse(tables[47],out ZhaojiaDefRatio); 
+			float.TryParse(tables[47],out ZhaojiaRatio); 
+
+			float.TryParse(tables[48],out ZhaojiaDefRatio); 
         }
         catch (Exception exception)
         {
diff --git a/Main/System/Main/FightPowerFormula.cs b/Main/System/Main/FightPowerFormula.cs
index 6a388dd..d2af00d 100644
--- a/Main/System/Main/FightPowerFormula.cs
+++ b/Main/System/Main/FightPowerFormula.cs
@@ -39,6 +39,8 @@
     private const string MAXHPRATIO_VALUE = "MaxHPRatio";
     private const string DEF_VALUE = "Def";
     private const string DEFRATIO_VALUE = "DefRatio";
+    private const string ATKSPEED_VALUE = "AtkSpeed";
+    private const string ATKSPEEDRATIO_VALUE = "AtkSpeedRatio";
     private const string STUNRATE_VALUE = "StunRate";
     private const string STUNRATERATIO_VALUE = "StunRateRatio";
     private const string SUPERHITRATE_VALUE = "SuperHitRate";
@@ -135,7 +137,7 @@
     // 鎴樻枟灞炴�у叕寮�
     // (lvValue+equipValue+realmValue+gubaoValue+hjgValue+horseValue+beautyValue+fatesValue+dingjungeValue)+(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+PVPDamPer*PVPDamPerRatio+PVPDamPerDef*PVPDamPerDefRatio+Guanchuan*GuanchuanRatio+GuanchuanDef*GuanchuanDefRatio+Zhaojia*ZhaojiaRatio+ZhaojiaDef*ZhaojiaDefRatio)/100.0-55000)
+    // long(Atk*AtkRatio+MaxHP*MaxHPRatio+Def*DefRatio+AtkSpeed*AtkSpeedRatio+(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+PVPDamPer*PVPDamPerRatio+PVPDamPerDef*PVPDamPerDefRatio+Guanchuan*GuanchuanRatio+GuanchuanDef*GuanchuanDefRatio+Zhaojia*ZhaojiaRatio+ZhaojiaDef*ZhaojiaDefRatio)/100.0-55000)
     // 鎶�鑳芥垬鏂楀姏鍏紡
     // SkillPower*OfficialLV
 
@@ -199,6 +201,8 @@
         double MaxHPRatio = variables[MAXHPRATIO_VALUE];
         double Def = variables[DEF_VALUE];
         double DefRatio = variables[DEFRATIO_VALUE];
+        double AtkSpeed = variables[ATKSPEED_VALUE];
+        double AtkSpeedRatio = variables[ATKSPEEDRATIO_VALUE];
         double StunRate = variables[STUNRATE_VALUE];
         double StunRateRatio = variables[STUNRATERATIO_VALUE];
         double SuperHitRate = variables[SUPERHITRATE_VALUE];
@@ -288,7 +292,7 @@
         double ZhaojiaDef = variables[ZHAOJIADEF_VALUE];
         double ZhaojiaDefRatio = variables[ZHAOJIADEFRATIO_VALUE];
 
-        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+PVPDamPer*PVPDamPerRatio+PVPDamPerDef*PVPDamPerDefRatio+Guanchuan*GuanchuanRatio+GuanchuanDef*GuanchuanDefRatio+Zhaojia*ZhaojiaRatio+ZhaojiaDef*ZhaojiaDefRatio)/100.0-55000);
+        return (long)(Atk*AtkRatio+MaxHP*MaxHPRatio+Def*DefRatio+AtkSpeed*AtkSpeedRatio+(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+PVPDamPer*PVPDamPerRatio+PVPDamPerDef*PVPDamPerDefRatio+Guanchuan*GuanchuanRatio+GuanchuanDef*GuanchuanDefRatio+Zhaojia*ZhaojiaRatio+ZhaojiaDef*ZhaojiaDefRatio)/100.0-55000);
     }
 
     public static double GetSkillsFightPower(Dictionary<string, double> variables)
diff --git a/Main/System/Main/FightPowerManager.cs b/Main/System/Main/FightPowerManager.cs
index 622970e..5bc5bc6 100644
--- a/Main/System/Main/FightPowerManager.cs
+++ b/Main/System/Main/FightPowerManager.cs
@@ -96,6 +96,7 @@
     private const string GUANCHUAN_DEF_RATIO = "GuanchuanDefRatio";
     private const string ZHAOJIA_RATIO = "ZhaojiaRatio";
     private const string ZHAOJIA_DEF_RATIO = "ZhaojiaDefRatio";
+    private const string ATKSPEEDRATIO_VALUE = "AtkSpeedRatio";
 
 
     private const string PLAYER_LV = "PlayerLV";
@@ -551,6 +552,7 @@
         fightPowerVariables[GUANCHUAN_DEF_RATIO] = fightPowerRatioConfig.GuanchuanDefRatio;
         fightPowerVariables[ZHAOJIA_RATIO] = fightPowerRatioConfig.ZhaojiaRatio;
         fightPowerVariables[ZHAOJIA_DEF_RATIO] = fightPowerRatioConfig.ZhaojiaDefRatio;
+        fightPowerVariables[ATKSPEEDRATIO_VALUE] = fightPowerRatioConfig.AtkSpeedRatio;
 
 
         long fightPower = (long)FightPowerFormula.GetFightPower(fightPowerVariables);

--
Gitblit v1.8.0