miao-plugin/resources/meta-sr/character/丹恒•饮月/calc.js
Aluxes 986cc67993
新增饮月 希露瓦 桑博 艾丝妲 伤害计算 (#637)
* 新增饮月 希露瓦 桑博 艾丝妲 伤害计算

* fix: arg name
2023-09-06 17:29:48 +08:00

131 lines
6.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

export const details = [{
title: '普攻伤害',
dmg: ({ talent, cons }, dmg) => {
// 2段伤害比例3:7
let dynamicDmg = cons >= 1 ? talent.t['伤害提高'] * 100 * 2 : talent.t['伤害提高'] * 100
let a1dmg = dmg(talent.a['技能伤害'] * 0.3, 'a')
let a2dmg = dmg.dynamic(talent.a['技能伤害'] * 0.7, 'a', { dynamicDmg })
return {
dmg: a1dmg.dmg + a2dmg.dmg,
avg: a1dmg.avg + a2dmg.avg
}
}
}, {
title: '1级强普伤害',
dmg: ({ talent, cons }, dmg) => {
// 3段伤害比例33:33:34
let dynamicDmg = cons >= 1 ? talent.t['伤害提高'] * 100 * 2 : talent.t['伤害提高'] * 100
let a1dmg = dmg(talent.a2['瞬华·单体伤害'] * 0.33, 'a')
let a2dmg = dmg.dynamic(talent.a2['瞬华·单体伤害'] * 0.33, 'a', { dynamicDmg })
let a3dmg = dmg.dynamic(talent.a2['瞬华·单体伤害'] * 0.34, 'a', { dynamicDmg: dynamicDmg * 2 })
return {
dmg: a1dmg.dmg + a2dmg.dmg + a3dmg.dmg,
avg: a1dmg.avg + a2dmg.avg + a3dmg.avg
}
}
}, {
title: '2级强普伤害(扩散)',
dmg: ({ talent, cons }, dmg) => {
// 主目标5段伤害比例20:20:20:20:20
// 副目标2段伤害比例50:50
let dynamicDmg = cons >= 1 ? talent.t['伤害提高'] * 100 * 2 : talent.t['伤害提高'] * 100
let dynamicCdmg = talent.e['暴击伤害提高'] * 100
let a1dmg = dmg(talent.a2['天矢阴·单体伤害'] * 0.2, 'a')
let a2dmg = dmg.dynamic(talent.a2['天矢阴·单体伤害'] * 0.2, 'a', { dynamicDmg })
let a3dmg = dmg.dynamic(talent.a2['天矢阴·单体伤害'] * 0.2, 'a', { dynamicDmg: dynamicDmg * 2 })
let a4dmg = dmg.dynamic(talent.a2['天矢阴·单体伤害'] * 0.2, 'a', { dynamicDmg: dynamicDmg * 3, dynamicCdmg })
let a5dmg = dmg.dynamic(talent.a2['天矢阴·单体伤害'] * 0.2, 'a', { dynamicDmg: dynamicDmg * 4, dynamicCdmg: dynamicCdmg * 2 })
let a1plusdmg = dmg.dynamic(talent.a2['天矢阴·相邻目标伤害'] * 0.5, 'a', { dynamicDmg: dynamicDmg * 3, dynamicCdmg })
let a2plusdmg = dmg.dynamic(talent.a2['天矢阴·相邻目标伤害'] * 0.5, 'a', { dynamicDmg: dynamicDmg * 4, dynamicCdmg: dynamicCdmg * 2 })
return {
dmg: a1dmg.dmg + a2dmg.dmg + a3dmg.dmg + a4dmg.dmg + a5dmg.dmg + (a1plusdmg.dmg + a2plusdmg.dmg) * 2,
avg: a1dmg.avg + a2dmg.avg + a3dmg.avg + a4dmg.avg + a5dmg.avg + (a1plusdmg.avg + a2plusdmg.avg) * 2
}
}
}, {
title: '3级强普伤害(扩散)',
params: { level3A: true },
dmg: ({ talent, cons }, dmg) => {
// 主目标7段伤害前六段比例14.2最后一段14.8
// 副目标4段伤害比例25:25:25:25
let dynamicDmg = cons >= 1 ? talent.t['伤害提高'] * 100 * 2 : talent.t['伤害提高'] * 100
let dynamicCdmg = talent.e['暴击伤害提高'] * 100
let a1dmg = dmg(talent.a2['盘拏耀跃·单体伤害'] * 0.142, 'a')
let a2dmg = dmg.dynamic(talent.a2['盘拏耀跃·单体伤害'] * 0.142, 'a', { dynamicDmg })
let a3dmg = dmg.dynamic(talent.a2['盘拏耀跃·单体伤害'] * 0.142, 'a', { dynamicDmg: dynamicDmg * 2 })
let a4dmg = dmg.dynamic(talent.a2['盘拏耀跃·单体伤害'] * 0.142, 'a', { dynamicDmg: dynamicDmg * 3, dynamicCdmg })
let a5dmg = dmg.dynamic(talent.a2['盘拏耀跃·单体伤害'] * 0.142, 'a', { dynamicDmg: dynamicDmg * 4, dynamicCdmg: dynamicCdmg * 2 })
let a6dmg = dmg.dynamic(talent.a2['盘拏耀跃·单体伤害'] * 0.142, 'a', { dynamicDmg: dynamicDmg * 5, dynamicCdmg: dynamicCdmg * 3 })
let a1plusdmg = dmg.dynamic(talent.a2['盘拏耀跃·相邻目标伤害'] * 0.25, 'a', { dynamicDmg: dynamicDmg * 3, dynamicCdmg })
let a2plusdmg = dmg.dynamic(talent.a2['盘拏耀跃·相邻目标伤害'] * 0.25, 'a', { dynamicDmg: dynamicDmg * 4, dynamicCdmg: dynamicCdmg * 2 })
let a3plusdmg = dmg.dynamic(talent.a2['盘拏耀跃·相邻目标伤害'] * 0.25, 'a', { dynamicDmg: dynamicDmg * 5, dynamicCdmg: dynamicCdmg * 3 })
dynamicDmg = cons >= 1 ? talent.t['伤害提高'] * 100 * 10 : talent.t['伤害提高'] * 100 * 6
let a7dmg = dmg.dynamic(talent.a2['盘拏耀跃·单体伤害'] * 0.148, 'a', { dynamicDmg, dynamicCdmg: dynamicCdmg * 4 })
let a4plusdmg = dmg.dynamic(talent.a2['盘拏耀跃·相邻目标伤害'] * 0.25, 'a', { dynamicDmg, dynamicCdmg: dynamicCdmg * 4 })
return {
dmg: a1dmg.dmg + a2dmg.dmg + a3dmg.dmg + a4dmg.dmg + a5dmg.dmg + a6dmg.dmg + a7dmg.dmg + (a1plusdmg.dmg + a2plusdmg.dmg + a3plusdmg.dmg + a4plusdmg.dmg) * 2,
avg: a1dmg.avg + a2dmg.avg + a3dmg.avg + a4dmg.avg + a5dmg.avg + a6dmg.avg + a7dmg.avg + (a1plusdmg.avg + a2plusdmg.avg + a3plusdmg.avg + a4plusdmg.avg) * 2
}
}
}, {
title: '终结技伤害(扩散)',
dmg: ({ talent, cons }, dmg) => {
// 3段伤害比例3:3:4
let dynamicDmg = cons >= 1 ? talent.t['伤害提高'] * 100 * 2 : talent.t['伤害提高'] * 100
let a1dmg = dmg(talent.q['目标伤害'] * 0.3, 'q')
let a2dmg = dmg.dynamic(talent.q['目标伤害'] * 0.3, 'q', { dynamicDmg })
let a3dmg = dmg.dynamic(talent.q['目标伤害'] * 0.4, 'q', { dynamicDmg: dynamicDmg * 2 })
let a1plusdmg = dmg(talent.q['相邻目标伤害'] * 0.3, 'q')
let a2plusdmg = dmg.dynamic(talent.q['相邻目标伤害'] * 0.3, 'q', { dynamicDmg })
let a3plusdmg = dmg.dynamic(talent.q['相邻目标伤害'] * 0.4, 'q', { dynamicDmg: dynamicDmg * 2 })
return {
dmg: a1dmg.dmg + a2dmg.dmg + a3dmg.dmg + (a1plusdmg.dmg + a2plusdmg.dmg + a3plusdmg.dmg) * 2,
avg: a1dmg.avg + a2dmg.avg + a3dmg.avg + (a1plusdmg.avg + a2plusdmg.avg + a3plusdmg.avg) * 2
}
}
}]
export const defDmgIdx = 3
export const mainAttr = 'atk,cpct,cdmg'
export const buffs = [{
title: '行迹-起蛰对拥有虚数属性弱点的敌人造成伤害时暴击伤害提高24%',
tree: 3,
data: {
cdmg: 24
}
}, {
title: '天赋-亢心丹恒•饮月施放每段攻击后获得1层【亢心】使自身造成的伤害提高[_dmg]%该效果可以叠加6层持续至自身回合结束。',
check: ({ cons }) => cons < 1,
data: {
_dmg: ({ talent }) => talent.t['伤害提高'] * 100
}
}, {
title: '天赋-亢心丹恒•饮月施放每段攻击后获得1层【亢心】使自身造成的伤害提高[_dmg]%该效果可以叠加10层持续至自身回合结束。',
cons: 1,
data: {
_dmg: ({ talent }) => talent.t['伤害提高'] * 100
}
}, {
title: '叱咤施放2级或3级强化普攻时从第4段攻击开始每段攻击前获得一层叱咤使暴击伤害提高[_cdmg]%最多叠加4层',
data: {
_cdmg: ({ talent }) => talent.e['暴击伤害提高'] * 100
}
}, {
title: '饮月6命满Buff时使3级强普的虚数属性抗性穿透提高60%',
cons: 6,
check: ({ params }) => params.level3A === true,
data: {
kx: 60
}
}]