添加草系反应支持,并直观化伤害计算逻辑 (#237)

This commit is contained in:
1-4134-5386-4941 2022-11-05 19:31:07 +08:00 committed by GitHub
parent e24726b391
commit 6e3728d3b8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 242 additions and 199 deletions

View File

@ -67,13 +67,21 @@ let DmgAttr = {
ret.element = eleMap[char.elem.toLowerCase()] // 元素类型 ret.element = eleMap[char.elem.toLowerCase()] // 元素类型
ret.refine = ((weapon.affix || ret.refine || 1) * 1 - 1) || 0 // 武器精炼 ret.refine = ((weapon.affix || ret.refine || 1) * 1 - 1) || 0 // 武器精炼
ret.multi = 0 // 倍率独立乘区 ret.multi = 0 // 倍率独立乘区
ret.zf = 0 // 蒸发 ret.vaporize = 0 // 蒸发
ret.rh = 0 // 融化 ret.melt = 0 // 融化
ret.gd = 0 // 感电 ret.burning = 0 // 燃烧
ret.ks = 0 // 扩散 ret.superconduct = 0 // 超导
ret.swirl = 0 // 扩散
ret.electro_charged = 0 // 感电
ret.shatter = 0 // 碎冰
ret.overloaded = 0 // 超载
ret.bloom = 0 // 绽放
ret.burgeon = 0 // 烈绽放
ret.hyperbloom = 0 // 超绽放
ret.aggravate = 0 // 超激化
ret.spread = 0 // 蔓激化
ret.kx = 0 // 敌人抗性降低 ret.kx = 0 // 敌人抗性降低
ret.fykx = 0 // 敌人反应抗性降低 ret.fykx = 0 // 敌人反应抗性降低
return ret return ret
}, },
@ -112,13 +120,13 @@ let DmgAttr = {
ds.currentTalent = talent ds.currentTalent = talent
let mKey = { let mKey = {
zf: '蒸发', vaporize: '蒸发',
rh: '融化', melt: '融化',
ks: '扩散' swirl: '扩散'
} }
if (lodash.isString(buff) && mKey[buff]) { if (lodash.isString(buff) && mKey[buff]) {
buff = { buff = {
zf: { vaporize: {
title: `元素精通:${mKey[buff]}伤害提高[${buff}]%`, title: `元素精通:${mKey[buff]}伤害提高[${buff}]%`,
mastery: buff mastery: buff
} }
@ -168,7 +176,7 @@ let DmgAttr = {
return return
} }
if (['zf', 'rh', 'kx', 'gd', 'ks', 'fykx'].includes(key)) { if (['vaporize', 'melt', 'burning', 'superconduct', 'swirl', 'electro_charged', 'shatter', 'overloaded', 'bloom', 'burgeon', 'hyperbloom', 'aggravate' , 'spread' ,'kx', 'fykx'].includes(key)) {
attr[key] += val * 1 || 0 attr[key] += val * 1 || 0
} }
}) })

View File

@ -57,9 +57,9 @@ let DmgBuffs = {
let artisBuffs = DmgBuffs.getArtisBuffs(profile.artis) let artisBuffs = DmgBuffs.getArtisBuffs(profile.artis)
buffs = lodash.concat(buffs, weaponBuffs, artisBuffs) buffs = lodash.concat(buffs, weaponBuffs, artisBuffs)
let mKey = { let mKey = {
zf: '蒸发', vaporize: '蒸发',
rh: '融化', melt: '融化',
ks: '扩散' swirl: '扩散'
} }
lodash.forEach(buffs, (buff, idx) => { lodash.forEach(buffs, (buff, idx) => {
if (lodash.isString(buff) && mKey[buff]) { if (lodash.isString(buff) && mKey[buff]) {

View File

@ -23,12 +23,13 @@ let DmgCalc = {
let calc = ds.calc let calc = ds.calc
let { atk, dmg, phy, cdmg, cpct } = attr let { atk, dmg, phy, cdmg, cpct } = attr
// 攻击区 // 攻击区
let atkNum = calc(atk) let atkNum = calc(atk)
// 倍率独立乘区 // 倍率独立乘区
let multiNum = attr.multi / 100 let multiNum = attr.multi / 100
// 增伤区 // 增伤区
let dmgNum = (1 + dmg.base / 100 + dmg.plus / 100) let dmgNum = (1 + dmg.base / 100 + dmg.plus / 100)
@ -77,46 +78,67 @@ let DmgCalc = {
kNum = 1 - kx / 200 kNum = 1 - kx / 200
} }
// 反应区
let eleNum = 1
let eleBase = 0
if (ele === 'ks' || ele === 'gd') {
eleBase = eleBaseDmg[level] || 0
}
if (ele === 'phy') {
// do nothing
} else if (ele) {
eleNum = DmgMastery.getBasePct(ele, attr.element)
if (attr[ele]) {
eleNum = eleNum * (1 + attr[ele] / 100)
}
}
cpctNum = Math.max(0, Math.min(1, cpctNum)) cpctNum = Math.max(0, Math.min(1, cpctNum))
if (cpctNum === 0) { if (cpctNum === 0) {
cdmgNum = 0 cdmgNum = 0
} }
// 反应区
let eleNum = (ele === false) ? 1 : DmgMastery.getBasePct(ele, attr.element)
let eleBase = (ele === false) ? 1 : 1 + attr[ele] / 100 + DmgMastery.getMultiple(ele, attr.mastery.base + attr.mastery.plus)
let dmgBase = (mode === 'basic') ? basicNum : atkNum * pctNum * (1 + multiNum)
let ret = {} let ret = {}
if (mode === 'basic') {
ret = { console.log(atkNum, multiNum, dmgBase)
dmg: basicNum * dmgNum * (1 + cdmgNum) * defNum * kNum * eleNum,
avg: basicNum * dmgNum * (1 + cpctNum * cdmgNum) * defNum * kNum * eleNum switch(ele)
{
case 'vaporize':
case 'melt':
{
ret = {
dmg: dmgBase * dmgNum * (1 + cdmgNum) * defNum * kNum * eleBase * eleNum,
avg: dmgBase * dmgNum * (1 + cpctNum * cdmgNum) * defNum * kNum * eleBase * eleNum
}
break
} }
} else if (eleBase) {
ret = { case 'burning':
avg: eleBase * kNum * eleNum case 'superconduct':
case 'swirl':
case 'electro_charged':
case 'shatter':
case 'overloaded':
case 'bloom':
case 'burgeon':
case 'hyperbloom':
{
eleBase *= eleBaseDmg[level]
ret = { avg: eleBase * eleNum * kNum }
break
} }
} else {
// 计算最终伤害 case 'aggravate':
ret = { case 'spread':
dmg: (atkNum * pctNum * (1 + multiNum) + plusNum) * dmgNum * (1 + cdmgNum) * defNum * kNum * eleNum, {
avg: (atkNum * pctNum * (1 + multiNum) + plusNum) * dmgNum * (1 + cpctNum * cdmgNum) * defNum * kNum * eleNum eleBase *= eleBaseDmg[level]
dmgBase += eleBase * eleNum
ret = {
dmg: dmgBase * dmgNum * (1 + cdmgNum) * defNum * kNum,
avg: dmgBase * dmgNum * (1 + cpctNum * cdmgNum) * defNum * kNum
}
break
}
default:
{
ret = {
dmg: dmgBase * dmgNum * (1 + cdmgNum) * defNum * kNum ,
avg: dmgBase * dmgNum * (1 + cpctNum * cdmgNum) * defNum * kNum
}
} }
} }
if (showDetail) { if (showDetail) {
console.log(attr, { atkNum, pctNum, multiNum, plusNum, dmgNum, cpctNum, cdmgNum, defNum, eleNum, kNum }, ret) console.log(attr, { atkNum, pctNum, multiNum, plusNum, dmgNum, cpctNum, cdmgNum, defNum, eleNum, kNum }, ret)
} }
@ -152,8 +174,8 @@ let DmgCalc = {
} }
} }
// 扩散方法 // 扩散方法
dmgFn.ks = function () { dmgFn.swirl = function () {
return dmgFn(0, 'fy', 'ks') return dmgFn(0, 'fy', 'swirl')
} }
return dmgFn return dmgFn

View File

@ -1,95 +1,95 @@
// 各等级精通基础伤害 // 各等级精通基础伤害
export const eleBaseDmg = { export const eleBaseDmg = {
1: 20, 1: 4.291,
2: 22, 2: 4.634,
3: 23, 3: 4.976,
4: 24, 4: 5.319,
5: 27, 5: 5.661,
6: 29, 6: 6.162,
7: 31, 7: 6.660,
8: 34, 8: 7.217,
9: 37, 9: 7.842,
10: 40, 10: 8.536,
11: 44, 11: 9.300,
12: 48, 12: 10.165,
13: 53, 13: 11.112,
14: 58, 14: 12.141,
15: 64, 15: 13.437,
16: 70, 16: 14.770,
17: 77, 17: 16.105,
18: 83, 18: 17.431,
19: 90, 19: 18.781,
20: 97, 20: 20.146,
21: 103, 21: 21.528,
22: 110, 22: 22.926,
23: 117, 23: 24.311,
24: 123, 24: 25.703,
25: 130, 25: 27.102,
26: 136, 26: 28.300,
27: 141, 27: 29.526,
28: 147, 28: 30.745,
29: 156, 29: 32.432,
30: 163, 30: 34.073,
31: 171, 31: 35.668,
32: 178, 32: 37.257,
33: 186, 33: 38.854,
34: 193, 34: 40.456,
35: 202, 35: 42.277,
36: 211, 36: 44.130,
37: 220, 37: 46.018,
38: 230, 38: 47.927,
39: 239, 39: 49.889,
40: 248, 40: 51.846,
41: 258, 41: 53.850,
42: 269, 42: 56.041,
43: 280, 43: 58.376,
44: 291, 44: 60.838,
45: 307, 45: 64.016,
46: 322, 46: 67.136,
47: 338, 47: 70.382,
48: 353, 48: 73.753,
49: 370, 49: 77.267,
50: 388, 50: 80.900,
51: 403, 51: 84.189,
52: 420, 52: 87.633,
53: 437, 53: 91.121,
54: 453, 54: 94.655,
55: 478, 55: 99.650,
56: 499, 56: 104.100,
57: 521, 57: 108.597,
58: 543, 58: 113.238,
59: 567, 59: 118.152,
60: 591, 60: 123.221,
61: 616, 61: 128.392,
62: 647, 62: 134.776,
63: 678, 63: 141.378,
64: 710, 64: 148.135,
65: 749, 65: 156.111,
66: 781, 66: 162.868,
67: 814, 67: 169.874,
68: 849, 68: 176.949,
69: 883, 69: 184.168,
70: 918, 70: 191.410,
71: 953, 71: 198.693,
72: 989, 72: 206.169,
73: 1021, 73: 212.789,
74: 1052, 74: 219.436,
75: 1097, 75: 228.557,
76: 1136, 76: 236.687,
77: 1174, 77: 244.853,
78: 1213, 78: 252.806,
79: 1253, 79: 261.198,
80: 1292, 80: 269.361,
81: 1331, 81: 277.499,
82: 1371, 82: 285.744,
83: 1411, 83: 294.092,
84: 1451, 84: 302.546,
85: 1504, 85: 313.459,
86: 1547, 86: 322.238,
87: 1590, 87: 331.371,
88: 1636, 88: 340.864,
89: 1686, 89: 351.274,
90: 1736 90: 361.713
} }
export const eleMap = { export const eleMap = {
@ -103,13 +103,20 @@ export const eleMap = {
} }
// 元素反应类型及基数 // 元素反应类型及基数
// 暂无需考虑碎冰
export const erType = { export const erType = {
zf: { type: 'pct', num: ({ element }) => element === '水' ? 2 : 1.5 }, 'vaporize': { type: 'pct', num: ({ element }) => element === '水' ? 2 : 1.5 },
rh: { type: 'pct', num: ({ element }) => element === '火' ? 2 : 1.5 }, 'melt': { type: 'pct', num: ({ element }) => element === '火' ? 2 : 1.5 },
gd: { type: 'fusion', num: () => 1 }, 'burning': { type: 'fusion', num: () => 1 },
cz: { type: 'fusion', num: () => 4 / 2.4 }, 'superconduct': { type: 'fusion', num: () => 2 },
ks: { type: 'fusion', num: () => 0.5 } 'swirl': { type: 'fusion', num: () => 2.4 },
'electro_charged': { type: 'fusion', num: () => 4.8 },
'shatter': { type: 'fusion', num: () => 6 },
'overloaded': { type: 'fusion', num: () => 8 },
'bloom': { type: 'fusion', num: () => 8 },
'burgeon': { type: 'fusion', num: () => 12 },
'hyperbloom': { type: 'fusion', num: () => 12 },
'aggravate': { type: 'bonus', num: () => 4.6 },
'spread': { type: 'bonus', num: () => 5.0 }
} }
export const attrMap = { export const attrMap = {

View File

@ -1,12 +1,14 @@
import { erType } from './DmgCalcMeta.js' import { erType } from './DmgCalcMeta.js'
let DmgMastery = { let DmgMastery = {
getMultiple (type = 'zf', mastery = 0) { getMultiple (type, mastery = 0) {
let typeCfg = erType[type] let typeCfg = erType[type]
if (typeCfg.type === 'pct') { if (typeCfg.type === 'pct') {
return 2.78 * mastery / (mastery + 1400) * 100 return (25 / 9) * mastery / (mastery + 1400)
} else if (typeCfg.type === 'fusion') { } else if (typeCfg.type === 'fusion') {
return (1 + mastery * 16) / (mastery + 2000) * 100 return 16 * mastery / (mastery + 2000)
} else if(typeCfg.type === 'bonus'){
return 5 * mastery / (mastery + 1200)
} }
return 0 return 0
}, },

View File

@ -72,10 +72,13 @@ const buffs = {
}, },
炽烈的炎之魔女4: { 炽烈的炎之魔女4: {
check: ({ element }) => element === '火', check: ({ element }) => element === '火',
title: '魔女4蒸发、融化伤害提高15%[buffCount]层额外提高[dmg]%火元素伤害加成', title: '魔女4蒸发、融化伤害提高15%[buffCount]层额外提高[dmg]%火元素伤害加成超载、燃烧、烈绽放反应造成的伤害提升40%',
data: { data: {
zf: 15, vaporize: 15,
rh: 15, melt: 15,
overloaded: 40,
burning: 40,
burgeon: 40,
dmg: ({ params }) => (params.monv || 1) * 7.5, dmg: ({ params }) => (params.monv || 1) * 7.5,
buffCount: ({ params }) => params.monv || 1 buffCount: ({ params }) => params.monv || 1
} }
@ -110,7 +113,7 @@ const buffs = {
冰之川与雪之砂4: { 冰之川与雪之砂4: {
title: '冰雪4融化加成提高15%释放元素爆发后冰伤提高30%', title: '冰雪4融化加成提高15%释放元素爆发后冰伤提高30%',
data: { data: {
rh: 15, melt: 15,
dmg: 30 dmg: 30
} }
}, },
@ -193,16 +196,17 @@ const buffs = {
title: '翠绿4扩散反应造成的伤害提升60%降低对应元素抗性40%', title: '翠绿4扩散反应造成的伤害提升60%降低对应元素抗性40%',
sort: 5, sort: 5,
data: { data: {
ks: 60, swirl: 60,
fykx: 40 fykx: 40
} }
}, },
如雷的盛怒4: { 如雷的盛怒4: {
title: '如雷4超载、感电、超导反应造成的伤害提升40%', title: '如雷4超载、感电、超导反应造成的伤害提升40%超激化反应带来的伤害提升提高20%',
data: { data: {
cz: 40, overloaded: 40,
gd: 40, electro_charged: 40,
cd: 40 superconduct: 40,
aggravate: 20
} }
}, },
深林的记忆4: { 深林的记忆4: {

View File

@ -5,7 +5,7 @@ export const details = [{
}, { }, {
title: 'E后带火花重击蒸发', title: 'E后带火花重击蒸发',
params: { q: false }, params: { q: false },
dmg: ({ talent }, dmg) => dmg(talent.a['重击伤害'], 'a2', 'zf') dmg: ({ talent }, dmg) => dmg(talent.a['重击伤害'], 'a2', 'vaporize')
}, { }, {
title: '单次轰轰火花伤害', title: '单次轰轰火花伤害',
dmg: ({ talent }, dmg) => dmg(talent.q['轰轰火花伤害'], 'q') dmg: ({ talent }, dmg) => dmg(talent.q['轰轰火花伤害'], 'q')
@ -30,4 +30,4 @@ export const buffs = [{
data: { data: {
dmg: ({ params }) => params.q === false ? 0 : 10 dmg: ({ params }) => params.q === false ? 0 : 10
} }
}, 'zf'] }, 'vaporize']

View File

@ -8,7 +8,7 @@ export const details = [{
}, { }, {
title: 'E络命丝蒸发', title: 'E络命丝蒸发',
dmg: ({ talent, attr, calc }, { basic }) => basic(calc(attr.hp) * talent.e['技能伤害'] / 100, 'e', 'zf') dmg: ({ talent, attr, calc }, { basic }) => basic(calc(attr.hp) * talent.e['技能伤害'] / 100, 'e', 'vaporize')
}, { }, {
title: 'Q协同单段伤害', title: 'Q协同单段伤害',
@ -36,4 +36,4 @@ export const buffs = [{
data: { data: {
dmg: ({ params }) => params.q ? 50 : 0 dmg: ({ params }) => params.q ? 50 : 0
} }
}, 'zf'] }, 'vaporize']

View File

@ -7,11 +7,11 @@ export const details = [{
}, { }, {
title: '兔兔伯爵蒸发', title: '兔兔伯爵蒸发',
check: ({ cons }) => cons < 2, check: ({ cons }) => cons < 2,
dmg: ({ talent }, dmg) => dmg(talent.e['爆炸伤害'], 'e', 'zf') dmg: ({ talent }, dmg) => dmg(talent.e['爆炸伤害'], 'e', 'vaporize')
}, { }, {
title: '引爆兔兔伯爵蒸发', title: '引爆兔兔伯爵蒸发',
cons: 2, cons: 2,
dmg: ({ talent }, dmg) => dmg(talent.e['爆炸伤害'] * 3, 'e', 'zf') dmg: ({ talent }, dmg) => dmg(talent.e['爆炸伤害'] * 3, 'e', 'vaporize')
}, { }, {
title: 'Q箭雨总伤害', title: 'Q箭雨总伤害',
params: { q: true }, params: { q: true },
@ -33,4 +33,4 @@ export const buffs = [{
}, { }, {
title: '安柏2命瞄准引爆兔兔伯爵伤害提高200%', title: '安柏2命瞄准引爆兔兔伯爵伤害提高200%',
cons: 2 cons: 2
}, 'zf'] }, 'vaporize']

View File

@ -9,7 +9,7 @@ export const details = [{
}, { }, {
title: '开E满Buff尾箭蒸发', title: '开E满Buff尾箭蒸发',
params: { num: 10 }, params: { num: 10 },
dmg: ({ talent }, dmg) => dmg(talent.a['五段伤害'], 'a', 'zf') dmg: ({ talent }, dmg) => dmg(talent.a['五段伤害'], 'a', 'vaporize')
}] }]
export const mainAttr = 'atk,cpct,cdmg,mastery' export const mainAttr = 'atk,cpct,cdmg,mastery'
@ -30,4 +30,4 @@ export const buffs = [{
data: { data: {
dmg: ({ params }) => params.num > 1 ? 25 : 0 dmg: ({ params }) => params.num > 1 ? 25 : 0
} }
}, 'zf'] }, 'vaporize']

View File

@ -9,7 +9,7 @@ export const details = [{
} }
}, { }, {
title: '扩散反应伤害', title: '扩散反应伤害',
dmg: ({}, { ks }) => ks() dmg: ({}, { swirl }) => swirl()
}] }]
export const mainAttr = 'atk,cpct,cdmg,mastery' export const mainAttr = 'atk,cpct,cdmg,mastery'
@ -21,4 +21,4 @@ export const buffs = [{
qPct: ({ attr, calc }) => Math.min(calc(attr.mastery) * 0.002, 400), qPct: ({ attr, calc }) => Math.min(calc(attr.mastery) * 0.002, 400),
_heal: ({ attr, calc }) => Math.min(calc(attr.mastery) * 3, 6000) _heal: ({ attr, calc }) => Math.min(calc(attr.mastery) * 3, 6000)
} }
}, 'ks'] }, 'swirl']

View File

@ -9,7 +9,7 @@ export const details = [{
dmg: ({ talent }, dmg) => dmg(talent.q['持续伤害'], 'q') dmg: ({ talent }, dmg) => dmg(talent.q['持续伤害'], 'q')
}, { }, {
title: '扩散反应伤害', title: '扩散反应伤害',
dmg: ({}, { ks }) => ks() dmg: ({}, { swirl }) => swirl()
}] }]
export const mainAttr = 'atk,cpct,cdmg,mastery' export const mainAttr = 'atk,cpct,cdmg,mastery'
@ -21,7 +21,7 @@ export const buffs = [{
mastery: 200 mastery: 200
} }
}, { }, {
title: '元素精通:扩散伤害提高[ks]%', title: '元素精通:扩散伤害提高[swirl]%',
sort: 2, sort: 2,
mastery: 'ks' mastery: 'swirl'
}] }]

View File

@ -19,7 +19,7 @@ export const details = [{
} }
}, { }, {
title: '扩散反应伤害', title: '扩散反应伤害',
dmg: ({}, { ks }) => ks() dmg: ({}, { swirl }) => swirl()
}] }]
export const mainAttr = 'atk,cpct,cdmg' export const mainAttr = 'atk,cpct,cdmg'
@ -42,4 +42,4 @@ export const buffs = [{
data: { data: {
kx: ({ params }) => params.q ? 20 : 0 kx: ({ params }) => params.q ? 20 : 0
} }
}, 'ks'] }, 'swirl']

View File

@ -5,7 +5,7 @@ export const details = [{
}, { }, {
title: '开Q满丹火印重击蒸发', title: '开Q满丹火印重击蒸发',
params: { dhy: 15 }, params: { dhy: 15 },
dmg: ({ talent, cons }, dmg) => dmg(talent.a['重击伤害2'][cons * 1 === 6 ? 4 : 3], 'a2', 'zf') dmg: ({ talent, cons }, dmg) => dmg(talent.a['重击伤害2'][cons * 1 === 6 ? 4 : 3], 'a2', 'vaporize')
}, { }, {
title: 'E伤害', title: 'E伤害',
dmg: ({ talent }, dmg) => dmg(talent.e['技能伤害'], 'e') dmg: ({ talent }, dmg) => dmg(talent.e['技能伤害'], 'e')
@ -28,4 +28,4 @@ export const buffs = [{
data: { data: {
a2Dmg: ({ talent }) => talent.q['重击伤害额外加成'] a2Dmg: ({ talent }) => talent.q['重击伤害额外加成']
} }
}, 'zf'] }, 'vaporize']

View File

@ -6,7 +6,7 @@ export const details = [{
dmg: ({ talent }, dmg) => dmg(talent.a['霜华矢·霜华绽发伤害'] + talent.a['霜华矢命中伤害'], 'a2') dmg: ({ talent }, dmg) => dmg(talent.a['霜华矢·霜华绽发伤害'] + talent.a['霜华矢命中伤害'], 'a2')
}, { }, {
title: '霜华矢两段+融化', title: '霜华矢两段+融化',
dmg: ({ talent }, dmg) => dmg(talent.a['霜华矢·霜华绽发伤害'] + talent.a['霜华矢命中伤害'], 'a2', 'rh') dmg: ({ talent }, dmg) => dmg(talent.a['霜华矢·霜华绽发伤害'] + talent.a['霜华矢命中伤害'], 'a2', 'melt')
}, { }, {
title: 'Q单个冰凌伤害', title: 'Q单个冰凌伤害',
params: { params: {
@ -36,4 +36,4 @@ export const buffs = [{
data: { data: {
dmg: ({ params }) => params.q ? 25 : 0 dmg: ({ params }) => params.q ? 25 : 0
} }
}, 'rh'] }, 'melt']

View File

@ -13,7 +13,7 @@ export const details = [{
} }
}, { }, {
title: '扩散反应伤害', title: '扩散反应伤害',
dmg: ({}, { ks }) => ks() dmg: ({}, { swirl }) => swirl()
}] }]
export const mainAttr = 'atk,cpct,cdmg,mastery' export const mainAttr = 'atk,cpct,cdmg,mastery'
@ -25,4 +25,4 @@ export const buffs = [{
data: { data: {
_mastery: ({ attr, calc }) => calc(attr.mastery) * 0.2 _mastery: ({ attr, calc }) => calc(attr.mastery) * 0.2
} }
}, 'ks'] }, 'swirl']

View File

@ -3,7 +3,7 @@ export const details = [{
dmg: ({ talent }, dmg) => dmg(talent.e['三段瞬水剑伤害'], 'a') dmg: ({ talent }, dmg) => dmg(talent.e['三段瞬水剑伤害'], 'a')
}, { }, {
title: 'E后瞬水剑三段蒸发', title: 'E后瞬水剑三段蒸发',
dmg: ({ talent }, dmg) => dmg(talent.e['三段瞬水剑伤害'], 'a', 'zf') dmg: ({ talent }, dmg) => dmg(talent.e['三段瞬水剑伤害'], 'a', 'vaporize')
}, { }, {
title: '神里流·水囿每段伤害', title: '神里流·水囿每段伤害',
params: { q: 1 }, params: { q: 1 },
@ -31,4 +31,4 @@ export const buffs = [{
data: { data: {
aPlus: ({ attr, calc, talent }) => calc(attr.hp) * talent.e['浪闪伤害值提高'] / 100 * 5 aPlus: ({ attr, calc, talent }) => calc(attr.hp) * talent.e['浪闪伤害值提高'] / 100 * 5
} }
}, 'zf'] }, 'vaporize']

View File

@ -1,7 +1,7 @@
export const details = [{ export const details = [{
title: 'E长按伤害', title: 'E长按伤害',
params: { e: true, q: false }, params: { e: true, q: false },
dmg: ({ talent }, dmg) => dmg(talent.e['长按伤害'], 'e') dmg: ({ talent }, dmg ) => dmg(talent.e['长按伤害'], 'e')
}, { }, {
title: '灭净三业伤害', title: '灭净三业伤害',
params: { e2: true, q: false }, params: { e2: true, q: false },
@ -9,7 +9,7 @@ export const details = [{
const td = talent.e['灭净三业伤害2'] const td = talent.e['灭净三业伤害2']
const em = calc(attr.mastery) const em = calc(attr.mastery)
const atk = calc(attr.atk) const atk = calc(attr.atk)
return basic(td[0] * atk / 100 + td[1] * em / 100, 'e') return basic(td[0] * atk / 100 + td[1] * em / 100, 'e', 'spread')
} }
}, { }, {
title: '开Q灭净三业伤害', title: '开Q灭净三业伤害',
@ -18,7 +18,7 @@ export const details = [{
const td = talent.e['灭净三业伤害2'] const td = talent.e['灭净三业伤害2']
const em = calc(attr.mastery) const em = calc(attr.mastery)
const atk = calc(attr.atk) const atk = calc(attr.atk)
return basic(td[0] * atk / 100 + td[1] * em / 100, 'e') return basic(td[0] * atk / 100 + td[1] * em / 100, 'e', 'spread')
} }
}] }]

View File

@ -3,7 +3,7 @@ export const details = [{
dmg: ({ talent, attr }, dmg) => dmg(talent.a['重击伤害'], 'a2') dmg: ({ talent, attr }, dmg) => dmg(talent.a['重击伤害'], 'a2')
}, { }, {
title: '半血开E重击蒸发', title: '半血开E重击蒸发',
dmg: ({ talent, attr }, dmg) => dmg(talent.a['重击伤害'], 'a2', 'zf') dmg: ({ talent, attr }, dmg) => dmg(talent.a['重击伤害'], 'a2', 'vaporize')
}, { }, {
title: '半血开E后Q', title: '半血开E后Q',
dmg: ({ talent, attr }, dmg) => dmg(talent.q['低血量时技能伤害'], 'q') dmg: ({ talent, attr }, dmg) => dmg(talent.q['低血量时技能伤害'], 'q')
@ -24,4 +24,4 @@ export const buffs = [{
data: { data: {
dmg: 33 dmg: 33
} }
}, 'zf'] }, 'vaporize']

View File

@ -3,7 +3,7 @@ export const details = [{
dmg: ({ talent }, dmg) => dmg(talent.a['重击伤害'], 'a2') dmg: ({ talent }, dmg) => dmg(talent.a['重击伤害'], 'a2')
}, { }, {
title: '重击蒸发', title: '重击蒸发',
dmg: ({ talent }, dmg) => dmg(talent.a['重击伤害'], 'a2', 'zf') dmg: ({ talent }, dmg) => dmg(talent.a['重击伤害'], 'a2', 'vaporize')
}, { }, {
title: 'E每跳治疗', title: 'E每跳治疗',
dmg: ({ talent, attr, calc }, { heal }) => dmg: ({ talent, attr, calc }, { heal }) =>
@ -23,7 +23,7 @@ export const buffs = [{
data: { data: {
dmg: 15 dmg: 15
} }
}, 'zf'] }, 'vaporize']
export const artisSect = function ({ attr, calc }) { export const artisSect = function ({ attr, calc }) {
let test = calc(attr.cpct) * 2 + calc(attr.cdmg) + calc(attr.dmg) let test = calc(attr.cpct) * 2 + calc(attr.cdmg) + calc(attr.dmg)

View File

@ -3,7 +3,7 @@ export const details = [{
dmg: ({ talent }, dmg) => dmg(talent.a['重击伤害'], 'a2') dmg: ({ talent }, dmg) => dmg(talent.a['重击伤害'], 'a2')
}, { }, {
title: '重击蒸发', title: '重击蒸发',
dmg: ({ talent }, dmg) => dmg(talent.a['重击伤害'], 'a2', 'zf') dmg: ({ talent }, dmg) => dmg(talent.a['重击伤害'], 'a2', 'vaporize')
}, { }, {
title: 'Q泡影破裂伤害', title: 'Q泡影破裂伤害',
params: { q: true }, params: { q: true },
@ -11,7 +11,7 @@ export const details = [{
}, { }, {
title: 'Q泡影破裂蒸发', title: 'Q泡影破裂蒸发',
params: { q: true }, params: { q: true },
dmg: ({ talent }, dmg) => dmg(talent.q['泡影破裂伤害'], 'q', 'zf') dmg: ({ talent }, dmg) => dmg(talent.q['泡影破裂伤害'], 'q', 'vaporize')
}] }]
export const mainAttr = 'atk,cpct,cdmg,recharge' export const mainAttr = 'atk,cpct,cdmg,recharge'
@ -25,7 +25,7 @@ export const buffs = [{
title: '莫娜1命命中星异状态下的敌人水元素相关反应效果提升15%', title: '莫娜1命命中星异状态下的敌人水元素相关反应效果提升15%',
cons: 1, cons: 1,
data: { data: {
zf: ({ params }) => params.q ? 15 : 0 vaporize: ({ params }) => params.q ? 15 : 0
} }
}, { }, {
title: '莫娜4命攻击处于星异状态下的敌人时暴击率提升15%', title: '莫娜4命攻击处于星异状态下的敌人时暴击率提升15%',
@ -44,4 +44,4 @@ export const buffs = [{
data: { data: {
dmg: ({ talent }) => talent.q['伤害加成'] dmg: ({ talent }) => talent.q['伤害加成']
} }
}, 'zf'] }, 'vaporize']

View File

@ -6,7 +6,7 @@ export const details = [{
dmg: ({ talent, attr }, dmg) => dmg(talent.q['剑雨伤害'], 'q') dmg: ({ talent, attr }, dmg) => dmg(talent.q['剑雨伤害'], 'q')
}, { }, {
title: '雨帘剑蒸发', title: '雨帘剑蒸发',
dmg: ({ talent, attr }, dmg) => dmg(talent.q['剑雨伤害'], 'q', 'zf') dmg: ({ talent, attr }, dmg) => dmg(talent.q['剑雨伤害'], 'q', 'vaporize')
}] }]
export const mainAttr = 'atk,cpct,cdmg,mastery' export const mainAttr = 'atk,cpct,cdmg,mastery'
@ -23,4 +23,4 @@ export const buffs = [{
data: { data: {
eMulti: 50 eMulti: 50
} }
}, 'zf'] }, 'vaporize']

View File

@ -9,9 +9,9 @@ export const details = [{
dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害·近战'], 'q') dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害·近战'], 'q')
}, { }, {
title: '开E后Q蒸发', title: '开E后Q蒸发',
dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害·近战'], 'q', 'zf') dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害·近战'], 'q', 'vaporize')
}] }]
export const mainAttr = 'atk,cpct,cdmg,mastery' export const mainAttr = 'atk,cpct,cdmg,mastery'
export const buffs = ['zf'] export const buffs = ['vaporize']

View File

@ -3,7 +3,7 @@ export const details = [{
dmg: ({ talent }, dmg) => dmg(talent.e['三段伤害'], 'e') dmg: ({ talent }, dmg) => dmg(talent.e['三段伤害'], 'e')
}, { }, {
title: 'E三段蒸发', title: 'E三段蒸发',
dmg: ({ talent }, dmg) => dmg(talent.e['三段伤害'], 'e', 'zf') dmg: ({ talent }, dmg) => dmg(talent.e['三段伤害'], 'e', 'vaporize')
}, { }, {
title: 'Q爆发伤害', title: 'Q爆发伤害',
params: { q: true }, params: { q: true },
@ -40,4 +40,4 @@ export const buffs = [{
data: { data: {
eDmg: 40 eDmg: 40
} }
}, 'zf'] }, 'vaporize']

View File

@ -3,13 +3,13 @@ export const details = [{
dmg: ({ talent }, dmg) => dmg(talent.e['喷火伤害'], 'e') dmg: ({ talent }, dmg) => dmg(talent.e['喷火伤害'], 'e')
}, { }, {
title: '锅巴单口蒸发', title: '锅巴单口蒸发',
dmg: ({ talent }, dmg) => dmg(talent.e['喷火伤害'], 'e', 'zf') dmg: ({ talent }, dmg) => dmg(talent.e['喷火伤害'], 'e', 'vaporize')
}, { }, {
title: '旋火轮单次伤害', title: '旋火轮单次伤害',
dmg: ({ talent }, dmg) => dmg(talent.q['旋火轮伤害'], 'q') dmg: ({ talent }, dmg) => dmg(talent.q['旋火轮伤害'], 'q')
}, { }, {
title: '旋火轮单次蒸发', title: '旋火轮单次蒸发',
dmg: ({ talent }, dmg) => dmg(talent.q['旋火轮伤害'], 'q', 'zf') dmg: ({ talent }, dmg) => dmg(talent.q['旋火轮伤害'], 'q', 'vaporize')
}] }]
export const mainAttr = 'atk,cpct,cdmg' export const mainAttr = 'atk,cpct,cdmg'
@ -20,4 +20,4 @@ export const buffs = [{
data: { data: {
kx: 15 kx: 15
} }
}, 'zf'] }, 'vaporize']