using System.Collections.Generic; public class FightPowerFormula { // 变量名常量定义 private const string LVVALUE_VALUE = "lvValue"; private const string EQUIPVALUE_VALUE = "equipValue"; private const string BOOKVALUE_VALUE = "bookValue"; private const string REALMVALUE_VALUE = "realmValue"; private const string GUBAOVALUE_VALUE = "gubaoValue"; private const string HJGVALUE_VALUE = "hjgValue"; private const string HORSEVALUE_VALUE = "horseValue"; private const string BEAUTYVALUE_VALUE = "beautyValue"; private const string LINEUPHALOPER_VALUE = "lineupHaloPer"; private const string BOOKPER_VALUE = "bookPer"; private const string REALMPER_VALUE = "realmPer"; private const string GUBAOPER_VALUE = "gubaoPer"; private const string HJGPER_VALUE = "hjgPer"; private const string HORSEPER_VALUE = "horsePer"; private const string BEAUTYPER_VALUE = "beautyPer"; private const string LINEUPINITADDPER_VALUE = "lineupInitAddPer"; private const string LINEUPLVADDPER_VALUE = "lineupLVAddPer"; private const string LINEUPBREAKLVADDPER_VALUE = "lineupBreakLVAddPer"; private const string LINEUPSTARADDPER_VALUE = "lineupStarAddPer"; private const string INHERITPER_VALUE = "inheritPer"; private const string FETTERPER_VALUE = "fetterPer"; private const string STARTALENTPER_VALUE = "starTalentPer"; private const string BREAKLVPER_VALUE = "breakLVPer"; private const string AWAKETALENTPER_VALUE = "awakeTalentPer"; private const string HEROSELFVALUE_VALUE = "heroSelfValue"; private const string HEROLVVALUE_VALUE = "heroLVValue"; private const string LINEUPHALOVALUE_VALUE = "lineupHaloValue"; private const string STARTALENTVALUE_VALUE = "starTalentValue"; private const string BREAKLVVALUE_VALUE = "breakLVValue"; private const string AWAKETALENTVALUE_VALUE = "awakeTalentValue"; private const string FETTERVALUE_VALUE = "fetterValue"; private const string ATK_VALUE = "Atk"; private const string ATKRATIO_VALUE = "AtkRatio"; private const string MAXHP_VALUE = "MaxHP"; private const string MAXHPRATIO_VALUE = "MaxHPRatio"; private const string DEF_VALUE = "Def"; private const string DEFRATIO_VALUE = "DefRatio"; private const string STUNRATE_VALUE = "StunRate"; private const string STUNRATERATIO_VALUE = "StunRateRatio"; private const string SUPERHITRATE_VALUE = "SuperHitRate"; private const string SUPERHITRATERATIO_VALUE = "SuperHitRateRatio"; private const string COMBORATE_VALUE = "ComboRate"; private const string COMBORATERATIO_VALUE = "ComboRateRatio"; private const string MISSRATE_VALUE = "MissRate"; private const string MISSRATERATIO_VALUE = "MissRateRatio"; private const string PARRYRATE_VALUE = "ParryRate"; private const string PARRYRATERATIO_VALUE = "ParryRateRatio"; private const string SUCKHPPER_VALUE = "SuckHPPer"; private const string SUCKHPPERRATIO_VALUE = "SuckHPPerRatio"; private const string STUNRATEDEF_VALUE = "StunRateDef"; private const string STUNRATEDEFRATIO_VALUE = "StunRateDefRatio"; private const string SUPERHITRATEDEF_VALUE = "SuperHitRateDef"; private const string SUPERHITRATEDEFRATIO_VALUE = "SuperHitRateDefRatio"; private const string COMBORATEDEF_VALUE = "ComboRateDef"; private const string COMBORATEDEFRATIO_VALUE = "ComboRateDefRatio"; private const string MISSRATEDEF_VALUE = "MissRateDef"; private const string MISSRATEDEFRATIO_VALUE = "MissRateDefRatio"; private const string PARRYRATEDEF_VALUE = "ParryRateDef"; private const string PARRYRATEDEFRATIO_VALUE = "ParryRateDefRatio"; private const string SUCKHPPERDEF_VALUE = "SuckHPPerDef"; private const string SUCKHPPERDEFRATIO_VALUE = "SuckHPPerDefRatio"; private const string FINALDAMPER_VALUE = "FinalDamPer"; private const string FINALDAMPERRATIO_VALUE = "FinalDamPerRatio"; private const string FINALDAMPERDEF_VALUE = "FinalDamPerDef"; private const string FINALDAMPERDEFRATIO_VALUE = "FinalDamPerDefRatio"; private const string PHYDAMPER_VALUE = "PhyDamPer"; private const string PHYDAMPERRATIO_VALUE = "PhyDamPerRatio"; private const string PHYDAMPERDEF_VALUE = "PhyDamPerDef"; private const string PHYDAMPERDEFRATIO_VALUE = "PhyDamPerDefRatio"; private const string MAGDAMPER_VALUE = "MagDamPer"; private const string MAGDAMPERRATIO_VALUE = "MagDamPerRatio"; private const string MAGDAMPERDEF_VALUE = "MagDamPerDef"; private const string MAGDAMPERDEFRATIO_VALUE = "MagDamPerDefRatio"; private const string NORMALSKILLPER_VALUE = "NormalSkillPer"; private const string NORMALSKILLPERRATIO_VALUE = "NormalSkillPerRatio"; private const string NORMALSKILLPERDEF_VALUE = "NormalSkillPerDef"; private const string NORMALSKILLPERDEFRATIO_VALUE = "NormalSkillPerDefRatio"; private const string ANGERSKILLPER_VALUE = "AngerSkillPer"; private const string ANGERSKILLPERRATIO_VALUE = "AngerSkillPerRatio"; private const string ANGERSKILLPERDEF_VALUE = "AngerSkillPerDef"; private const string ANGERSKILLPERDEFRATIO_VALUE = "AngerSkillPerDefRatio"; private const string SUPERDAMPER_VALUE = "SuperDamPer"; private const string SUPERDAMPERRATIO_VALUE = "SuperDamPerRatio"; private const string SUPERDAMPERDEF_VALUE = "SuperDamPerDef"; private const string SUPERDAMPERDEFRATIO_VALUE = "SuperDamPerDefRatio"; private const string CUREPER_VALUE = "CurePer"; private const string CUREPERRATIO_VALUE = "CurePerRatio"; private const string CUREPERDEF_VALUE = "CurePerDef"; private const string CUREPERDEFRATIO_VALUE = "CurePerDefRatio"; private const string SHIELDPER_VALUE = "ShieldPer"; private const string SHIELDPERRATIO_VALUE = "ShieldPerRatio"; private const string SHIELDPERDEF_VALUE = "ShieldPerDef"; private const string SHIELDPERDEFRATIO_VALUE = "ShieldPerDefRatio"; private const string DOTPER_VALUE = "DOTPer"; private const string DOTPERRATIO_VALUE = "DOTPerRatio"; private const string DOTPERDEF_VALUE = "DOTPerDef"; private const string DOTPERDEFRATIO_VALUE = "DOTPerDefRatio"; private const string WEIFINALDAMPER_VALUE = "WeiFinalDamPer"; private const string WEIFINALDAMPERRATIO_VALUE = "WeiFinalDamPerRatio"; private const string WEIFINALDAMPERDEF_VALUE = "WeiFinalDamPerDef"; private const string WEIFINALDAMPERDEFRATIO_VALUE = "WeiFinalDamPerDefRatio"; private const string SHUFINALDAMPER_VALUE = "ShuFinalDamPer"; private const string SHUFINALDAMPERRATIO_VALUE = "ShuFinalDamPerRatio"; private const string SHUFINALDAMPERDEF_VALUE = "ShuFinalDamPerDef"; private const string SHUFINALDAMPERDEFRATIO_VALUE = "ShuFinalDamPerDefRatio"; private const string WUFINALDAMPER_VALUE = "WuFinalDamPer"; private const string WUFINALDAMPERRATIO_VALUE = "WuFinalDamPerRatio"; private const string WUFINALDAMPERDEF_VALUE = "WuFinalDamPerDef"; private const string WUFINALDAMPERDEFRATIO_VALUE = "WuFinalDamPerDefRatio"; private const string QUNFINALDAMPER_VALUE = "QunFinalDamPer"; private const string QUNFINALDAMPERRATIO_VALUE = "QunFinalDamPerRatio"; private const string QUNFINALDAMPERDEF_VALUE = "QunFinalDamPerDef"; private const string QUNFINALDAMPERDEFRATIO_VALUE = "QunFinalDamPerDefRatio"; private const string PVPDAMPER_VALUE = "PVPDamPer"; private const string PVPDAMPERRATIO_VALUE = "PVPDamPerRatio"; private const string PVPDAMPERDEF_VALUE = "PVPDamPerDef"; private const string PVPDAMPERDEFRATIO_VALUE = "PVPDamPerDefRatio"; private const string SKILLPOWER_VALUE = "SkillPower"; private const string OFFICIALLV_VALUE = "OfficialLV"; // 基础属性公式 // (lvValue+equipValue+bookValue+realmValue+gubaoValue+hjgValue+horseValue+beautyValue)*(1+lineupHaloPer+bookPer+realmPer+gubaoPer+hjgPer+horsePer+beautyPer+lineupInitAddPer+lineupLVAddPer+lineupBreakLVAddPer+lineupStarAddPer)*(inheritPer+fetterPer+starTalentPer+breakLVPer+awakeTalentPer)+heroSelfValue+heroLVValue // 战斗属性公式 // (lvValue+equipValue+bookValue+realmValue+gubaoValue+hjgValue+horseValue+beautyValue)+(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) // 技能战斗力公式 // SkillPower*OfficialLV public static double GetBaseAttr(Dictionary variables) { double lvValue = variables[LVVALUE_VALUE]; double equipValue = variables[EQUIPVALUE_VALUE]; double bookValue = variables[BOOKVALUE_VALUE]; double realmValue = variables[REALMVALUE_VALUE]; double gubaoValue = variables[GUBAOVALUE_VALUE]; double hjgValue = variables[HJGVALUE_VALUE]; double horseValue = variables[HORSEVALUE_VALUE]; double beautyValue = variables[BEAUTYVALUE_VALUE]; double lineupHaloPer = variables[LINEUPHALOPER_VALUE]; double bookPer = variables[BOOKPER_VALUE]; double realmPer = variables[REALMPER_VALUE]; double gubaoPer = variables[GUBAOPER_VALUE]; double hjgPer = variables[HJGPER_VALUE]; double horsePer = variables[HORSEPER_VALUE]; double beautyPer = variables[BEAUTYPER_VALUE]; double lineupInitAddPer = variables[LINEUPINITADDPER_VALUE]; double lineupLVAddPer = variables[LINEUPLVADDPER_VALUE]; double lineupBreakLVAddPer = variables[LINEUPBREAKLVADDPER_VALUE]; double lineupStarAddPer = variables[LINEUPSTARADDPER_VALUE]; double inheritPer = variables[INHERITPER_VALUE]; double fetterPer = variables[FETTERPER_VALUE]; double starTalentPer = variables[STARTALENTPER_VALUE]; double breakLVPer = variables[BREAKLVPER_VALUE]; double awakeTalentPer = variables[AWAKETALENTPER_VALUE]; double heroSelfValue = variables[HEROSELFVALUE_VALUE]; double heroLVValue = variables[HEROLVVALUE_VALUE]; return (lvValue+equipValue+bookValue+realmValue+gubaoValue+hjgValue+horseValue+beautyValue)*(1+lineupHaloPer+bookPer+realmPer+gubaoPer+hjgPer+horsePer+beautyPer+lineupInitAddPer+lineupLVAddPer+lineupBreakLVAddPer+lineupStarAddPer)*(inheritPer+fetterPer+starTalentPer+breakLVPer+awakeTalentPer)+heroSelfValue+heroLVValue; } public static double GetFightAttr(Dictionary variables) { double lvValue = variables[LVVALUE_VALUE]; double equipValue = variables[EQUIPVALUE_VALUE]; double bookValue = variables[BOOKVALUE_VALUE]; double realmValue = variables[REALMVALUE_VALUE]; double gubaoValue = variables[GUBAOVALUE_VALUE]; double hjgValue = variables[HJGVALUE_VALUE]; double horseValue = variables[HORSEVALUE_VALUE]; double beautyValue = variables[BEAUTYVALUE_VALUE]; double heroSelfValue = variables[HEROSELFVALUE_VALUE]; double lineupHaloValue = variables[LINEUPHALOVALUE_VALUE]; double starTalentValue = variables[STARTALENTVALUE_VALUE]; double breakLVValue = variables[BREAKLVVALUE_VALUE]; double awakeTalentValue = variables[AWAKETALENTVALUE_VALUE]; double fetterValue = variables[FETTERVALUE_VALUE]; return (lvValue+equipValue+bookValue+realmValue+gubaoValue+hjgValue+horseValue+beautyValue)+(heroSelfValue+lineupHaloValue+starTalentValue+breakLVValue+awakeTalentValue)+fetterValue; } public static double GetFightPower(Dictionary variables) { double Atk = variables[ATK_VALUE]; double AtkRatio = variables[ATKRATIO_VALUE]; double MaxHP = variables[MAXHP_VALUE]; double MaxHPRatio = variables[MAXHPRATIO_VALUE]; double Def = variables[DEF_VALUE]; double DefRatio = variables[DEFRATIO_VALUE]; double StunRate = variables[STUNRATE_VALUE]; double StunRateRatio = variables[STUNRATERATIO_VALUE]; double SuperHitRate = variables[SUPERHITRATE_VALUE]; double SuperHitRateRatio = variables[SUPERHITRATERATIO_VALUE]; double ComboRate = variables[COMBORATE_VALUE]; double ComboRateRatio = variables[COMBORATERATIO_VALUE]; double MissRate = variables[MISSRATE_VALUE]; double MissRateRatio = variables[MISSRATERATIO_VALUE]; double ParryRate = variables[PARRYRATE_VALUE]; double ParryRateRatio = variables[PARRYRATERATIO_VALUE]; double SuckHPPer = variables[SUCKHPPER_VALUE]; double SuckHPPerRatio = variables[SUCKHPPERRATIO_VALUE]; double StunRateDef = variables[STUNRATEDEF_VALUE]; double StunRateDefRatio = variables[STUNRATEDEFRATIO_VALUE]; double SuperHitRateDef = variables[SUPERHITRATEDEF_VALUE]; double SuperHitRateDefRatio = variables[SUPERHITRATEDEFRATIO_VALUE]; double ComboRateDef = variables[COMBORATEDEF_VALUE]; double ComboRateDefRatio = variables[COMBORATEDEFRATIO_VALUE]; double MissRateDef = variables[MISSRATEDEF_VALUE]; double MissRateDefRatio = variables[MISSRATEDEFRATIO_VALUE]; double ParryRateDef = variables[PARRYRATEDEF_VALUE]; double ParryRateDefRatio = variables[PARRYRATEDEFRATIO_VALUE]; double SuckHPPerDef = variables[SUCKHPPERDEF_VALUE]; double SuckHPPerDefRatio = variables[SUCKHPPERDEFRATIO_VALUE]; double FinalDamPer = variables[FINALDAMPER_VALUE]; double FinalDamPerRatio = variables[FINALDAMPERRATIO_VALUE]; double FinalDamPerDef = variables[FINALDAMPERDEF_VALUE]; double FinalDamPerDefRatio = variables[FINALDAMPERDEFRATIO_VALUE]; double PhyDamPer = variables[PHYDAMPER_VALUE]; double PhyDamPerRatio = variables[PHYDAMPERRATIO_VALUE]; double PhyDamPerDef = variables[PHYDAMPERDEF_VALUE]; double PhyDamPerDefRatio = variables[PHYDAMPERDEFRATIO_VALUE]; double MagDamPer = variables[MAGDAMPER_VALUE]; double MagDamPerRatio = variables[MAGDAMPERRATIO_VALUE]; double MagDamPerDef = variables[MAGDAMPERDEF_VALUE]; double MagDamPerDefRatio = variables[MAGDAMPERDEFRATIO_VALUE]; double NormalSkillPer = variables[NORMALSKILLPER_VALUE]; double NormalSkillPerRatio = variables[NORMALSKILLPERRATIO_VALUE]; double NormalSkillPerDef = variables[NORMALSKILLPERDEF_VALUE]; double NormalSkillPerDefRatio = variables[NORMALSKILLPERDEFRATIO_VALUE]; double AngerSkillPer = variables[ANGERSKILLPER_VALUE]; double AngerSkillPerRatio = variables[ANGERSKILLPERRATIO_VALUE]; double AngerSkillPerDef = variables[ANGERSKILLPERDEF_VALUE]; double AngerSkillPerDefRatio = variables[ANGERSKILLPERDEFRATIO_VALUE]; double SuperDamPer = variables[SUPERDAMPER_VALUE]; double SuperDamPerRatio = variables[SUPERDAMPERRATIO_VALUE]; double SuperDamPerDef = variables[SUPERDAMPERDEF_VALUE]; double SuperDamPerDefRatio = variables[SUPERDAMPERDEFRATIO_VALUE]; double CurePer = variables[CUREPER_VALUE]; double CurePerRatio = variables[CUREPERRATIO_VALUE]; double CurePerDef = variables[CUREPERDEF_VALUE]; double CurePerDefRatio = variables[CUREPERDEFRATIO_VALUE]; double ShieldPer = variables[SHIELDPER_VALUE]; double ShieldPerRatio = variables[SHIELDPERRATIO_VALUE]; double ShieldPerDef = variables[SHIELDPERDEF_VALUE]; double ShieldPerDefRatio = variables[SHIELDPERDEFRATIO_VALUE]; double DOTPer = variables[DOTPER_VALUE]; double DOTPerRatio = variables[DOTPERRATIO_VALUE]; double DOTPerDef = variables[DOTPERDEF_VALUE]; double DOTPerDefRatio = variables[DOTPERDEFRATIO_VALUE]; double WeiFinalDamPer = variables[WEIFINALDAMPER_VALUE]; double WeiFinalDamPerRatio = variables[WEIFINALDAMPERRATIO_VALUE]; double WeiFinalDamPerDef = variables[WEIFINALDAMPERDEF_VALUE]; double WeiFinalDamPerDefRatio = variables[WEIFINALDAMPERDEFRATIO_VALUE]; double ShuFinalDamPer = variables[SHUFINALDAMPER_VALUE]; double ShuFinalDamPerRatio = variables[SHUFINALDAMPERRATIO_VALUE]; double ShuFinalDamPerDef = variables[SHUFINALDAMPERDEF_VALUE]; double ShuFinalDamPerDefRatio = variables[SHUFINALDAMPERDEFRATIO_VALUE]; double WuFinalDamPer = variables[WUFINALDAMPER_VALUE]; double WuFinalDamPerRatio = variables[WUFINALDAMPERRATIO_VALUE]; double WuFinalDamPerDef = variables[WUFINALDAMPERDEF_VALUE]; double WuFinalDamPerDefRatio = variables[WUFINALDAMPERDEFRATIO_VALUE]; double QunFinalDamPer = variables[QUNFINALDAMPER_VALUE]; double QunFinalDamPerRatio = variables[QUNFINALDAMPERRATIO_VALUE]; double QunFinalDamPerDef = variables[QUNFINALDAMPERDEF_VALUE]; double QunFinalDamPerDefRatio = variables[QUNFINALDAMPERDEFRATIO_VALUE]; double PVPDamPer = variables[PVPDAMPER_VALUE]; double PVPDamPerRatio = variables[PVPDAMPERRATIO_VALUE]; double PVPDamPerDef = variables[PVPDAMPERDEF_VALUE]; double PVPDamPerDefRatio = variables[PVPDAMPERDEFRATIO_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); } public static double GetSkillsFightPower(Dictionary variables) { double SkillPower = variables[SKILLPOWER_VALUE]; double OfficialLV = variables[OFFICIALLV_VALUE]; return SkillPower*OfficialLV; } }