diff --git a/models/dmg/DmgCalc.js b/models/dmg/DmgCalc.js index 8162b0e9..c1c43404 100644 --- a/models/dmg/DmgCalc.js +++ b/models/dmg/DmgCalc.js @@ -205,10 +205,13 @@ let DmgCalc = { break } - // 未计算层数(风化、纠缠)和韧性条系数(击破、纠缠) + // 未计算:1. 层数(风化、纠缠) 2. 韧性条系数(击破、纠缠) 3. 削韧值(超击破)、超击破伤害提高 // 常规击破伤害均需要计算减伤区(即按韧性条存在处理) 特例:阮梅终结技/秘技击破伤害不计算减伤 // 击破伤害 = 基础伤害 * 属性击破伤害系数 * (1+击破特攻%) * 易伤区 * 防御区 * 抗性区 * 减伤区 * (敌方韧性+2)/4 * 层数系数 // 击破持续伤害 = 基础伤害 * 属性持续伤害系数 * (1+击破特攻%) * 易伤区 * 防御区 * 抗性区 * 减伤区 * 层数系数 + // 超击破伤害 = 基础伤害 * (1+击破特攻%) * 易伤区 * 防御区 * 抗性区 * 减伤区 * (1+超击破伤害提高) * 技能最终削韧值 + // 技能最终削韧值 = 技能基础削韧值 ×(1+削韧值提高)×(1+弱点击破效率提高) + // 超击破伤害提高 截至2.2版本该乘区仅能由同谐开拓者提供,与常规增伤区无关,暂时只在calc.js中手动计算 case 'shock': case 'burn': case 'windShear': @@ -220,11 +223,12 @@ let DmgCalc = { case 'physicalBreak': case 'quantumBreak': case 'imaginaryBreak': - case 'iceBreak': { - let breakDotBase = 1 - breakDotBase *= breakBaseDmg[level] + case 'iceBreak': + case 'superBreak': { + let breakBase = 1 + breakBase *= breakBaseDmg[level] ret = { - avg: breakDotBase * eleNum * stanceNum * enemydmgNum * defNum * kNum * dmgReduceNum + avg: breakBase * eleNum * stanceNum * enemydmgNum * defNum * kNum * dmgReduceNum } break } @@ -275,6 +279,7 @@ let DmgCalc = { break } // 击破伤害 + case 'superBreak': case 'lightningBreak': case 'fireBreak': case 'windBreak': diff --git a/models/dmg/DmgCalcMeta.js b/models/dmg/DmgCalcMeta.js index aa3f070d..498e4a1a 100644 --- a/models/dmg/DmgCalcMeta.js +++ b/models/dmg/DmgCalcMeta.js @@ -34,7 +34,9 @@ export const erType = { physicalBreak: { type: 'break', num: () => 2.0, title: '物理击破' }, quantumBreak: { type: 'break', num: () => 0.5, title: '量子击破' }, imaginaryBreak: { type: 'break', num: () => 0.5, title: '虚数击破' }, - iceBreak: { type: 'break', num: () => 1.0, title: '冰击破' } + iceBreak: { type: 'break', num: () => 1.0, title: '冰击破' }, + // 超击破伤害 + superBreak: { type: 'break', num: () => 1.0, title: '超击破' } } let erTmp = {} lodash.forEach(erType, (er, key) => {