伤害计算支持超击破伤害

This commit is contained in:
Aluxes 2024-05-13 21:47:26 +08:00
parent 0c22316bda
commit 194080acfc
No known key found for this signature in database
GPG Key ID: 6696152F9C003087
2 changed files with 13 additions and 6 deletions

View File

@ -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':

View File

@ -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) => {