新增月城柳伤害计算等

This commit is contained in:
UCPr 2025-01-15 01:08:31 +08:00
parent 5bacdbbbc9
commit 208cb0ae05
5 changed files with 293 additions and 162 deletions

View file

@ -0,0 +1,106 @@
/** @type {import('../../BuffManager.ts').BuffManager['buffs']} */
export const buffs = [
{
name: '1影',
type: '异常精通',
value: 80
},
{
name: '2影',
type: '倍率',
value: 0.05,
isForever: true,
range: ['强化E极性紊乱']
},
{
name: '2影',
type: '倍率',
value: 0.3,
range: ['强化E极性紊乱']
},
{
name: '4影',
type: '穿透率',
value: 0.16
},
{
name: '6影',
type: '增伤',
value: 0.2,
range: ['EQ']
},
{
name: '6影',
type: '倍率',
value: 0.3,
range: ['强化E极性紊乱']
},
{
name: '核心被动:月蚀',
type: '倍率',
value: 'T1',
range: ['紊乱']
},
{
name: '核心被动:月蚀',
type: '增伤',
value: 'T2',
element: 'Electric'
},
{
name: '技能:普攻上弦',
type: '增伤',
value: 0.1,
element: 'Electric'
},
{
name: '技能:普攻下弦',
type: '穿透率',
value: 0.1
}
]
/** @type {import('../../Calculator.ts').Calculator['skills']} */
export const skills = [
{ name: '感电每次', type: '感电' },
{ name: '紊乱', type: '紊乱' },
{ name: '普攻:上弦五段', type: 'APS5' },
{ name: '普攻:下弦五段', type: 'APX5' },
{ name: '闪避反击:疾反', type: 'CF' },
{ name: '强化特殊技月华流转0', type: 'EQ0', isHide: true },
{
name: '强化特殊技:月华流转',
type: 'EQ',
after: ({ damage }) => damage.add('EQ0')
},
{
name: '强化E极性紊乱',
type: '紊乱',
banCache: true,
before: ({ calc, detail }) => {
const skill = { type: '紊乱' }
const DiscoverMultiplier = calc.get_DiscoverMultiplier(skill)
const n = calc.get('倍率', 0.15, { type: '强化E极性紊乱' })
const ATK = calc.get_ATK(skill)
const AnomalyProficiency = calc.get_AnomalyProficiency(skill)
const skillMultiplier = calc.get_Multiplier('E极性紊乱')
detail.BasicArea = DiscoverMultiplier * ATK * n + AnomalyProficiency * skillMultiplier
}
},
{ name: '连携技:星月相随', type: 'RL' },
{ name: '终结技:雷影天华', type: 'RZ' },
{
name: '终结技极性紊乱',
type: '紊乱',
banCache: true,
before: ({ calc, detail }) => {
const skill = { type: '紊乱' }
const DiscoverMultiplier = calc.get_DiscoverMultiplier(skill)
const n = calc.get('倍率', 0.15, { type: '终结技极性紊乱' })
const ATK = calc.get_ATK(skill)
const AnomalyProficiency = calc.get_AnomalyProficiency(skill)
const skillMultiplier = calc.get_Multiplier('R极性紊乱')
detail.BasicArea = DiscoverMultiplier * ATK * n + AnomalyProficiency * skillMultiplier
}
}
]

View file

@ -0,0 +1,39 @@
{
"skill": {
"APS5": [
2.369,2.585,2.801,3.017,3.233,3.449,3.665,3.881,4.097,4.313,4.529,4.745,4.961,5.177,5.393,5.609
],
"APX5": [
2.718,2.966,3.214,3.462,3.71,3.958,4.206,4.454,4.702,4.95,5.198,5.446,5.694,5.942,6.19,6.438
],
"CF": [
2.316,2.527,2.738,2.949,3.16,3.371,3.582,3.793,4.004,4.215,4.426,4.637,4.848,5.059,5.27,5.481
],
"EQ0": [
1.638,1.787,1.936,2.085,2.234,2.383,2.532,2.681,2.83,2.979,3.128,3.277,3.426,3.575,3.724,3.873
],
"EQ": [
3.778,4.122,4.466,4.81,5.154,5.498,5.842,6.186,6.53,6.874,7.218,7.562,7.906,8.25,8.594,8.938
],
"E极性紊乱": [
7.25,9.5,11.75,14,16.25,18.5,20.75,23,25.25,27.5,29.75,32,34.25,36.5,38.75,41
],
"RL": [
5.931,6.471,7.011,7.551,8.091,8.631,9.171,9.711,10.251,10.791,11.331,11.871,12.411,12.951,13.491,14.31
],
"RZ": [
5.931,6.471,7.011,7.551,8.091,8.631,9.171,9.711,10.251,10.791,11.331,11.871,12.411,12.951,13.491,14.31
],
"R极性紊乱": [
7.25,9.5,11.75,14,16.25,18.5,20.75,23,25.25,27.5,29.75,32,34.25,36.5,38.75,41
]
},
"buff": {
"T1": [
1.25,1.45,1.66,1.88,2.08,2.30,2.50
],
"T2": [
0.1,0.116,0.133,0.15,0.166,0.183,0.2
]
}
}

View file

@ -68,35 +68,28 @@ export const skills = [
type: 'EQS',
after: ({ damage }) => damage.x(0.5)
},
{
name: '6影强化E双份额外余烬秒伤',
type: 'YY',
fixedMultiplier: 1.2,
check: ({ avatar }) => avatar.rank >= 6
},
{
name: '6影强化E双份额外灼烧',
type: 'Y灼烧',
check: ({ avatar }) => avatar.rank >= 6,
dmg: (calc) => {
const dmg = calc.calc_skill({
name: '灼烧每段',
element: 'Fire',
banCache: true,
type: '灼烧',
after: ({ damage }) => damage.x(18)
})
dmg.skill.name = '6影强化E双份额外灼烧'
return dmg
}
},
{ name: '连携技:燃油熔焰', type: 'RL' },
{ name: '终结技:纵享盛焰', type: 'RZ' }
]
/**
* @param {import('../../BuffManager.ts').BuffManager} buffM
* @param {import('../../Calculator.ts').Calculator} calc
* @param {import('../../../avatar.js').ZZZAvatarInfo} avatar
*/
export function calc(buffM, calc, avatar) {
if (avatar.rank >= 6) {
calc.new({
name: '6影强化E双份额外余烬秒伤',
type: 'YY',
fixedMultiplier: 1.2
})
calc.new({
name: '6影强化E双份额外灼烧',
type: 'Y灼烧',
dmg: (calc) => {
const dmg = calc.calc_skill({
name: '灼烧每段',
element: 'Fire',
type: '灼烧',
after: ({ damage }) => damage.x(18)
})
dmg.skill.name = '6影强化E双份额外灼烧'
return dmg
}
})
}
}
]