yyl
2026-01-09 f90bcf177217ad0e104bc811d576c1517b79758e
Main/System/Main/FightPowerFormula.cs
@@ -11,6 +11,7 @@
    private const string HORSEVALUE_VALUE = "horseValue";
    private const string BEAUTYVALUE_VALUE = "beautyValue";
    private const string FATESVALUE_VALUE = "fatesValue";
    private const string DINGJUNGEVALUE_VALUE = "dingjungeValue";
    private const string LINEUPHALOPER_VALUE = "lineupHaloPer";
    private const string REALMPER_VALUE = "realmPer";
    private const string GUBAOPER_VALUE = "gubaoPer";
@@ -24,6 +25,7 @@
    private const string STARTALENTPER_VALUE = "starTalentPer";
    private const string BREAKLVPER_VALUE = "breakLVPer";
    private const string AWAKETALENTPER_VALUE = "awakeTalentPer";
    private const string DINGJUNGEPER_VALUE = "dingjungePer";
    private const string HEROSELFVALUE_VALUE = "heroSelfValue";
    private const string HEROLVVALUE_VALUE = "heroLVValue";
    private const string LINEUPHALOVALUE_VALUE = "lineupHaloValue";
@@ -117,15 +119,23 @@
    private const string PVPDAMPERRATIO_VALUE = "PVPDamPerRatio";
    private const string PVPDAMPERDEF_VALUE = "PVPDamPerDef";
    private const string PVPDAMPERDEFRATIO_VALUE = "PVPDamPerDefRatio";
    private const string GUANCHUAN_VALUE = "Guanchuan";
    private const string GUANCHUANRATIO_VALUE = "GuanchuanRatio";
    private const string GUANCHUANDEF_VALUE = "GuanchuanDef";
    private const string GUANCHUANDEFRATIO_VALUE = "GuanchuanDefRatio";
    private const string ZHAOJIA_VALUE = "Zhaojia";
    private const string ZHAOJIARATIO_VALUE = "ZhaojiaRatio";
    private const string ZHAOJIADEF_VALUE = "ZhaojiaDef";
    private const string ZHAOJIADEFRATIO_VALUE = "ZhaojiaDefRatio";
    private const string SKILLPOWER_VALUE = "SkillPower";
    private const string OFFICIALLV_VALUE = "OfficialLV";
    // 基础属性公式
    // (lvValue+equipValue+realmValue+gubaoValue+hjgValue+horseValue+beautyValue+fatesValue)*(1+lineupHaloPer+realmPer+gubaoPer+hjgPer+horsePer+beautyPer+fatesPer+cardPer)*(inheritPer+fetterPer+starTalentPer+breakLVPer+awakeTalentPer)+heroSelfValue+heroLVValue
    // (lvValue+equipValue+realmValue+gubaoValue+hjgValue+horseValue+beautyValue+fatesValue+dingjungeValue)*(1+lineupHaloPer+realmPer+gubaoPer+hjgPer+horsePer+beautyPer+fatesPer+cardPer)*(inheritPer+fetterPer+starTalentPer+breakLVPer+awakeTalentPer)*(1+dingjungePer)+heroSelfValue+heroLVValue
    // 战斗属性公式
    // (lvValue+equipValue+realmValue+gubaoValue+hjgValue+horseValue+beautyValue+fatesValue)+(heroSelfValue+lineupHaloValue+starTalentValue+breakLVValue+awakeTalentValue)+fetterValue
    // (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)/100.0-55000)
    // 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)
    // 技能战斗力公式
    // SkillPower*OfficialLV
@@ -139,6 +149,7 @@
        double horseValue = variables[HORSEVALUE_VALUE];
        double beautyValue = variables[BEAUTYVALUE_VALUE];
        double fatesValue = variables[FATESVALUE_VALUE];
        double dingjungeValue = variables[DINGJUNGEVALUE_VALUE];
        double lineupHaloPer = variables[LINEUPHALOPER_VALUE];
        double realmPer = variables[REALMPER_VALUE];
        double gubaoPer = variables[GUBAOPER_VALUE];
@@ -152,10 +163,11 @@
        double starTalentPer = variables[STARTALENTPER_VALUE];
        double breakLVPer = variables[BREAKLVPER_VALUE];
        double awakeTalentPer = variables[AWAKETALENTPER_VALUE];
        double dingjungePer = variables[DINGJUNGEPER_VALUE];
        double heroSelfValue = variables[HEROSELFVALUE_VALUE];
        double heroLVValue = variables[HEROLVVALUE_VALUE];
        return (lvValue+equipValue+realmValue+gubaoValue+hjgValue+horseValue+beautyValue+fatesValue)*(1+lineupHaloPer+realmPer+gubaoPer+hjgPer+horsePer+beautyPer+fatesPer+cardPer)*(inheritPer+fetterPer+starTalentPer+breakLVPer+awakeTalentPer)+heroSelfValue+heroLVValue;
        return (lvValue+equipValue+realmValue+gubaoValue+hjgValue+horseValue+beautyValue+fatesValue+dingjungeValue)*(1+lineupHaloPer+realmPer+gubaoPer+hjgPer+horsePer+beautyPer+fatesPer+cardPer)*(inheritPer+fetterPer+starTalentPer+breakLVPer+awakeTalentPer)*(1+dingjungePer)+heroSelfValue+heroLVValue;
    }
    public static double GetFightAttr(Dictionary<string, double> variables)
@@ -168,6 +180,7 @@
        double horseValue = variables[HORSEVALUE_VALUE];
        double beautyValue = variables[BEAUTYVALUE_VALUE];
        double fatesValue = variables[FATESVALUE_VALUE];
        double dingjungeValue = variables[DINGJUNGEVALUE_VALUE];
        double heroSelfValue = variables[HEROSELFVALUE_VALUE];
        double lineupHaloValue = variables[LINEUPHALOVALUE_VALUE];
        double starTalentValue = variables[STARTALENTVALUE_VALUE];
@@ -175,7 +188,7 @@
        double awakeTalentValue = variables[AWAKETALENTVALUE_VALUE];
        double fetterValue = variables[FETTERVALUE_VALUE];
        return (lvValue+equipValue+realmValue+gubaoValue+hjgValue+horseValue+beautyValue+fatesValue)+(heroSelfValue+lineupHaloValue+starTalentValue+breakLVValue+awakeTalentValue)+fetterValue;
        return (lvValue+equipValue+realmValue+gubaoValue+hjgValue+horseValue+beautyValue+fatesValue+dingjungeValue)+(heroSelfValue+lineupHaloValue+starTalentValue+breakLVValue+awakeTalentValue)+fetterValue;
    }
    public static double GetFightPower(Dictionary<string, double> variables)
@@ -266,8 +279,16 @@
        double PVPDamPerRatio = variables[PVPDAMPERRATIO_VALUE];
        double PVPDamPerDef = variables[PVPDAMPERDEF_VALUE];
        double PVPDamPerDefRatio = variables[PVPDAMPERDEFRATIO_VALUE];
        double Guanchuan = variables[GUANCHUAN_VALUE];
        double GuanchuanRatio = variables[GUANCHUANRATIO_VALUE];
        double GuanchuanDef = variables[GUANCHUANDEF_VALUE];
        double GuanchuanDefRatio = variables[GUANCHUANDEFRATIO_VALUE];
        double Zhaojia = variables[ZHAOJIA_VALUE];
        double ZhaojiaRatio = variables[ZHAOJIARATIO_VALUE];
        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)/100.0-55000);
        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);
    }
    public static double GetSkillsFightPower(Dictionary<string, double> variables)