mirror of
https://github.com/yoimiya-kokomi/miao-plugin.git
synced 2024-12-01 11:12:03 +00:00
添加草系反应支持,并直观化伤害计算逻辑 (#237)
This commit is contained in:
parent
e24726b391
commit
6e3728d3b8
@ -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
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -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]) {
|
||||||
|
@ -23,6 +23,7 @@ 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)
|
||||||
|
|
||||||
@ -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') {
|
|
||||||
|
console.log(atkNum, multiNum, dmgBase)
|
||||||
|
|
||||||
|
switch(ele)
|
||||||
|
{
|
||||||
|
case 'vaporize':
|
||||||
|
case 'melt':
|
||||||
|
{
|
||||||
ret = {
|
ret = {
|
||||||
dmg: basicNum * dmgNum * (1 + cdmgNum) * defNum * kNum * eleNum,
|
dmg: dmgBase * dmgNum * (1 + cdmgNum) * defNum * kNum * eleBase * eleNum,
|
||||||
avg: basicNum * dmgNum * (1 + cpctNum * cdmgNum) * defNum * kNum * eleNum
|
avg: dmgBase * dmgNum * (1 + cpctNum * cdmgNum) * defNum * kNum * eleBase * eleNum
|
||||||
}
|
}
|
||||||
} else if (eleBase) {
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'burning':
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'aggravate':
|
||||||
|
case 'spread':
|
||||||
|
{
|
||||||
|
eleBase *= eleBaseDmg[level]
|
||||||
|
dmgBase += eleBase * eleNum
|
||||||
ret = {
|
ret = {
|
||||||
avg: eleBase * kNum * eleNum
|
dmg: dmgBase * dmgNum * (1 + cdmgNum) * defNum * kNum,
|
||||||
|
avg: dmgBase * dmgNum * (1 + cpctNum * cdmgNum) * defNum * kNum
|
||||||
}
|
}
|
||||||
} else {
|
break
|
||||||
// 计算最终伤害
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
{
|
||||||
ret = {
|
ret = {
|
||||||
dmg: (atkNum * pctNum * (1 + multiNum) + plusNum) * dmgNum * (1 + cdmgNum) * defNum * kNum * eleNum,
|
dmg: dmgBase * dmgNum * (1 + cdmgNum) * defNum * kNum ,
|
||||||
avg: (atkNum * pctNum * (1 + multiNum) + plusNum) * dmgNum * (1 + cpctNum * cdmgNum) * defNum * kNum * eleNum
|
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
|
||||||
|
@ -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 = {
|
||||||
|
@ -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
|
||||||
},
|
},
|
||||||
|
@ -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: {
|
||||||
|
@ -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']
|
||||||
|
@ -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']
|
||||||
|
@ -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']
|
||||||
|
@ -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']
|
||||||
|
@ -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']
|
||||||
|
@ -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'
|
||||||
}]
|
}]
|
||||||
|
@ -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']
|
||||||
|
@ -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']
|
||||||
|
@ -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']
|
||||||
|
@ -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']
|
||||||
|
@ -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']
|
||||||
|
@ -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')
|
||||||
}
|
}
|
||||||
}]
|
}]
|
||||||
|
|
||||||
|
@ -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']
|
||||||
|
@ -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)
|
||||||
|
@ -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']
|
||||||
|
@ -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']
|
||||||
|
@ -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']
|
||||||
|
@ -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']
|
||||||
|
@ -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']
|
||||||
|
Loading…
Reference in New Issue
Block a user