fix: 仆人伤害计算

This commit is contained in:
Aluxes 2024-05-24 00:12:25 +08:00
parent 50251cb20b
commit def6ab8c15
No known key found for this signature in database
GPG Key ID: 6696152F9C003087
4 changed files with 37 additions and 45 deletions

View File

@ -131,7 +131,8 @@ export default class ProfileDmg extends Base {
level: profile.level, level: profile.level,
cons: profile.cons * 1, cons: profile.cons * 1,
talent, talent,
trees: this.trees() trees: this.trees(),
weapon: profile.weapon
} }
let { id, weapon, attr, artis } = profile let { id, weapon, attr, artis } = profile

View File

@ -106,7 +106,6 @@ let DmgAttr = {
params, params,
refine: attr.refine, refine: attr.refine,
weaponTypeName: attr.weaponTypeName, weaponTypeName: attr.weaponTypeName,
weapon: attr.weapon,
element: Format.elemName(attr.element) || attr.element, // 计算属性 element: Format.elemName(attr.element) || attr.element, // 计算属性
calc: DmgAttr.getAttrValue calc: DmgAttr.getAttrValue
} }

View File

@ -1,13 +1,10 @@
export const details = [{ export const details = [{
title: 'E后普攻段伤害', title: 'E后普攻段伤害',
dmg: ({ talent }, dmg) => dmg(talent.a['一段伤害'], 'a') dmg: ({ talent }, dmg) => dmg(talent.a['一段伤害'], 'a')
}, { }, {
check: ({ cons }) => cons >= 2, check: ({ cons }) => cons >= 2,
title: '血偿勒令回收伤害', title: '2命血偿勒令回收伤害',
dmg: ({ attr }, { basic }) => basic(attr.atk * 900 / 100, 'e') dmg: ({ attr }, { basic }) => basic(attr.atk * 900 / 100, '')
}, {
title: 'E切斩伤害',
dmg: ({ talent }, dmg) => dmg(talent.e['切斩伤害'], 'e')
}, { }, {
title: 'Q伤害', title: 'Q伤害',
dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害'], 'q') dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害'], 'q')
@ -21,14 +18,14 @@ export const details = [{
}] }]
export const defDmgIdx = 0 export const defDmgIdx = 0
export const mainAttr = 'atk,cpct,cdmg,mastery' export const mainAttr = 'atk,cpct,cdmg,mastery,dmg'
export const defParams = { BondOfLife: 130 }// 生命之契在此调整,请勿超过200 export const defParams = ({ weapon }) => weapon.name === '赤月之形' ? { BondOfLife: 155 } : { BondOfLife: 130 }// 生命之契在此调整,请勿超过200
export const buffs = [{ export const buffs = [{
title: '阿蕾奇诺天赋:[buffCount]%最大生命值的生命之契,普通攻击伤害提升[aPlus]', title: '阿蕾奇诺天赋:[buffCount]%最大生命值的生命之契,普通攻击伤害提升[aPlus]',
data: { data: {
buffCount: ({ params, weapon }) => Math.min(params.BondOfLife + (weapon.name === '赤月之形' ? 25 : 0), 200), buffCount: ({ params }) => Math.min(params.BondOfLife, 200),
aPlus: ({ talent, attr, params, cons, weapon }) => attr.atk * ((Math.min((params.BondOfLife + (weapon.name === '赤月之形' ? 25 : 0)), 200) / 100) * ((cons >= 1 ? (talent.a['红死之宴提升'] + 100) : talent.a['红死之宴提升']) / 100)) aPlus: ({ talent, attr, params, cons }) => attr.atk * Math.min(params.BondOfLife, 200) / 100 * (cons >= 1 ? (talent.a['红死之宴提升'] + 100) : talent.a['红死之宴提升']) / 100
} }
}, { }, {
title: '阿蕾奇诺天赋:在战斗状态下获得[dmg]%伤害加成', title: '阿蕾奇诺天赋:在战斗状态下获得[dmg]%伤害加成',
@ -39,7 +36,7 @@ export const buffs = [{
title: '阿蕾奇诺6命Q造成的伤害提高[qPlus],且释放后普通攻击与元素爆发的暴击率提高[aCpct]%,暴击伤害提高[aCdmg]%', title: '阿蕾奇诺6命Q造成的伤害提高[qPlus],且释放后普通攻击与元素爆发的暴击率提高[aCpct]%,暴击伤害提高[aCdmg]%',
cons: 6, cons: 6,
data: { data: {
qPlus: ({ attr, params, weapon }) => attr.atk * (Math.min((params.BondOfLife + (weapon.name === '赤月之形' ? 25 : 0)), 200) / 100) * (700 / 100), qPlus: ({ attr, params }) => attr.atk * Math.min(params.BondOfLife, 200) / 100 * 700 / 100,
aCpct: 10, aCpct: 10,
aCdmg: 70, aCdmg: 70,
qCpct: 10, qCpct: 10,

View File

@ -1,13 +1,10 @@
export const details = [{ export const details = [{
title: 'E后普攻段伤害', title: 'E后普攻段伤害',
dmg: ({ talent }, dmg) => dmg(talent.a['一段伤害'], 'a') dmg: ({ talent }, dmg) => dmg(talent.a['一段伤害'], 'a')
}, { }, {
check: ({ cons }) => cons >= 2, check: ({ cons }) => cons >= 2,
title: '血偿勒令回收伤害', title: '2命血偿勒令回收伤害',
dmg: ({ attr }, { basic }) => basic(attr.atk * 900 / 100, 'e') dmg: ({ attr }, { basic }) => basic(attr.atk * 900 / 100, '')
}, {
title: 'E切斩伤害',
dmg: ({ talent }, dmg) => dmg(talent.e['切斩伤害'], 'e')
}, { }, {
title: 'Q伤害', title: 'Q伤害',
dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害'], 'q') dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害'], 'q')
@ -15,28 +12,32 @@ export const details = [{
title: 'Q蒸发伤害', title: 'Q蒸发伤害',
dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害'], 'q', 'vaporize') dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害'], 'q', 'vaporize')
}, { }, {
title: '仆万香班 普攻尾段', title: '仆万班钟·普攻首段',
params: { team: true, Kazuha: true, BondOfLife: 200 }, params: { team1: true, BondOfLife: 200 },
dmg: ({ talent }, dmg) => dmg(talent.a['段伤害'], 'a') dmg: ({ talent }, dmg) => dmg(talent.a['段伤害'], 'a')
}, { }, {
title: '仆万香班 Q伤害', title: '仆万班钟·Q伤害',
params: { team: true, Kazuha: true }, params: { team1: true, BondOfLife: 200 },
dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害'], 'q') dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害'], 'q')
}, { }, {
title: '仆万夜钟 普攻尾段蒸发', title: '仆夜万班·普攻首段蒸发',
params: { team2: true, Kazuha: true, BondOfLife: 200 }, params: { team2: true, BondOfLife: 200 },
dmg: ({ talent }, dmg) => dmg(talent.a['六段伤害'], 'a', 'vaporize') dmg: ({ talent }, dmg) => dmg(talent.a['一段伤害'], 'a', 'vaporize')
}, {
title: '仆夜万班·Q蒸发',
params: { team2: true, BondOfLife: 200 },
dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害'], 'q', 'vaporize')
}] }]
export const defDmgIdx = 0 export const defDmgIdx = 0
export const mainAttr = 'atk,cpct,cdmg,mastery' export const mainAttr = 'atk,cpct,cdmg,mastery,dmg'
export const defParams = { BondOfLife: 130 }// 生命之契在此调整 export const defParams = ({ weapon }) => weapon.name === '赤月之形' ? { BondOfLife: 155 } : { BondOfLife: 130 }// 生命之契在此调整,请勿超过200
export const buffs = [{ export const buffs = [{
title: '阿蕾奇诺天赋:[buffCount]%最大生命值的生命之契,普通攻击伤害提升[aPlus]', title: '阿蕾奇诺天赋:[buffCount]%最大生命值的生命之契,普通攻击伤害提升[aPlus]',
data: { data: {
buffCount: ({ params, weapon }) => Math.min(params.BondOfLife + (weapon.name === '赤月之形' ? 25 : 0), 200), buffCount: ({ params }) => Math.min(params.BondOfLife, 200),
aPlus: ({ talent, attr, params, cons, weapon }) => attr.atk * ((Math.min((params.BondOfLife + (weapon.name === '赤月之形' ? 25 : 0)), 200) / 100) * ((cons >= 1 ? (talent.a['红死之宴提升'] + 100) : talent.a['红死之宴提升']) / 100)) aPlus: ({ talent, attr, params, cons }) => attr.atk * Math.min(params.BondOfLife, 200) / 100 * (cons >= 1 ? (talent.a['红死之宴提升'] + 100) : talent.a['红死之宴提升']) / 100
} }
}, { }, {
title: '阿蕾奇诺天赋:在战斗状态下获得[dmg]%伤害加成', title: '阿蕾奇诺天赋:在战斗状态下获得[dmg]%伤害加成',
@ -47,38 +48,32 @@ export const buffs = [{
title: '阿蕾奇诺6命Q造成的伤害提高[qPlus],且释放后普通攻击与元素爆发的暴击率提高[aCpct]%,暴击伤害提高[aCdmg]%', title: '阿蕾奇诺6命Q造成的伤害提高[qPlus],且释放后普通攻击与元素爆发的暴击率提高[aCpct]%,暴击伤害提高[aCdmg]%',
cons: 6, cons: 6,
data: { data: {
qPlus: ({ attr, params, weapon }) => attr.atk * (Math.min((params.BondOfLife + (weapon.name === '赤月之形' ? 25 : 0)), 200) / 100) * (700 / 100), qPlus: ({ attr, params }) => attr.atk * Math.min(params.BondOfLife, 200) / 100 * 700 / 100,
aCpct: 10, aCpct: 10,
aCdmg: 70, aCdmg: 70,
qCpct: 10, qCpct: 10,
qCdmg: 70 qCdmg: 70
} }
}, { }, {
check: ({ params }) => params.team === true, check: ({ params }) => params.team1 === true || params.team2 === true,
title: '火共鸣:增加攻击[atkPct]%', title: '火共鸣:增加攻击[atkPct]%',
data: { data: {
atkPct: 25 atkPct: 25
} }
}, { }, {
check: ({ params }) => params.team === true, check: ({ params }) => params.team1 === true || params.team2 === true,
title: '风鹰班:增加[atkPlus]点攻击力', title: '风鹰班:增加[atkPlus]点攻击力',
data: { data: {
atkPlus: 1202.35 atkPlus: 1202.35
} }
}, { }, {
check: ({ params, artis }) => params.team === true && artis.昔日宗室之仪 !== 4, check: ({ params, artis }) => (params.team1 === true || params.team2 === true) && artis.昔日宗室之仪 !== 4,
title: '班尼特-昔日宗室之仪:增加攻击[atkPct]%', title: '班尼特-昔日宗室之仪:增加攻击[atkPct]%',
data: { data: {
atkPct: 20 atkPct: 20
} }
}, { }, {
check: ({ params }) => params.team === true, check: ({ cons, params }) => cons <= 1 && (params.team1 === true || params.team2 === true),
title: '香菱6命增加[dmg]%火伤',
data: {
dmg: 15
}
}, {
check: ({ cons, params }) => cons <= 1 && params.Kazuha === true,
title: '精1苍古0命万叶获得[dmg]%增伤(苍古普攻16增伤),增加[atkPct]%攻击,减抗[kx]%', title: '精1苍古0命万叶获得[dmg]%增伤(苍古普攻16增伤),增加[atkPct]%攻击,减抗[kx]%',
data: { data: {
aDmg: 16, aDmg: 16,
@ -89,7 +84,7 @@ export const buffs = [{
kx: 40 kx: 40
} }
}, { }, {
check: ({ cons, params }) => ((cons < 6 && cons > 1) && params.Kazuha === true), check: ({ cons, params }) => cons < 6 && cons > 1 && (params.team1 === true || params.team2 === true),
title: '精1苍古2命万叶获得[dmg]%增伤(苍古普攻16增伤),增加[atkPct]%攻击,减抗[kx]%,精通[mastery]', title: '精1苍古2命万叶获得[dmg]%增伤(苍古普攻16增伤),增加[atkPct]%攻击,减抗[kx]%,精通[mastery]',
data: { data: {
aDmg: 16, aDmg: 16,
@ -101,7 +96,7 @@ export const buffs = [{
mastery: 200 mastery: 200
} }
}, { }, {
check: ({ cons, params }) => (cons >= 6 && params.Kazuha === true), check: ({ cons, params }) => cons >= 6 && (params.team1 === true || params.team2 === true),
title: '精5苍古6命万叶获得[dmg]%增伤(苍古普攻32增伤),增加[atkPct]%攻击,减抗[kx]%,精通[mastery]', title: '精5苍古6命万叶获得[dmg]%增伤(苍古普攻32增伤),增加[atkPct]%攻击,减抗[kx]%,精通[mastery]',
data: { data: {
aDmg: 32, aDmg: 32,
@ -113,7 +108,7 @@ export const buffs = [{
mastery: 200 mastery: 200
} }
}, { }, {
check: ({ params }) => params.team2 === true, check: ({ params }) => params.team1 === true,
title: '钟离:降低敌人[kx]%全抗', title: '钟离:降低敌人[kx]%全抗',
data: { data: {
kx: 20 kx: 20