fix: 伤害计算Bug

This commit is contained in:
Aluxes 2024-04-30 20:10:36 +08:00
parent 22020900fd
commit 66b26d58b2
No known key found for this signature in database
GPG Key ID: 6696152F9C003087
14 changed files with 115 additions and 90 deletions

View File

@ -82,13 +82,13 @@ export async function AbyssSummary (e) {
msg.push({
title: '少于',
value: (Math.max(0.1, 100 - percent * 100)).toFixed(1),
name: name
name
})
} else {
msg.push({
title: '超过',
value: (Math.min(99.9, percent * 100)).toFixed(1),
name: name
name
})
}
}

View File

@ -83,5 +83,5 @@ export const usefulAttr = {
闲云: { hp: 0, atk: 100, def: 0, cpct: 100, cdmg: 100, mastery: 0, dmg: 100, phy: 0, recharge: 75, heal: 100 },
嘉明: { hp: 0, atk: 75, def: 0, cpct: 100, cdmg: 100, mastery: 75, dmg: 100, phy: 0, recharge: 55, heal: 0 },
千织: { hp: 0, atk: 50, def: 75, cpct: 100, cdmg: 100, mastery: 0, dmg: 100, phy: 0, recharge: 55, heal: 0 },
阿蕾奇诺: { hp: 0, atk: 75, def: 0, cpct: 100, cdmg: 100, mastery: 75, dmg: 100, phy: 0, recharge: 35, heal: 0 }
阿蕾奇诺: { hp: 0, atk: 75, def: 0, cpct: 100, cdmg: 100, mastery: 75, dmg: 100, phy: 0, recharge: 55, heal: 0 }
}

View File

@ -357,7 +357,7 @@ const buffs = {
title: '触发提高普攻[aPlus]伤害',
sort: 9,
data: {
aPlus: ({ attr }) => (attr.atk.base + attr.atk.plus + attr.atk.pct * attr.atk.base / 100) * 0.35
aPlus: ({ attr }) => attr.atk * 0.35
}
}
},
@ -487,7 +487,7 @@ const buffs = {
},
谐律异想断章: {
2: attr('atkPct', 18 ),
2: attr('atkPct', 18),
4: {
title: '生命之契的数值提升或降低时,角色造成的伤害提升[dmg]%',
data: {
@ -497,7 +497,7 @@ const buffs = {
},
未竟的遐思: {
2: attr('atkPct', 18 ),
2: attr('atkPct', 18),
4: {
title: '存在处于燃烧状态下的敌人时,伤害提升[dmg]%',
data: {

View File

@ -1433,7 +1433,7 @@
"10000096": {
"id": 10000096,
"name": "阿蕾奇诺",
"abbr": "阿蕾奇诺",
"abbr": "仆人",
"star": 5,
"elem": "pyro",
"weapon": "polearm",

View File

@ -1,14 +1,14 @@
export const details = [{
title: 'Q提供普攻基础伤害',
dmg: ({ talent, attr, calc }) => {
dmg: ({ talent, attr }) => {
return {
avg: (talent.q['伤害值提升'] / 100 + 0.115) * calc(attr.def)
avg: (talent.q['伤害值提升'] / 100 + 0.115) * attr.def
}
}
}, {
title: '二段蓄力E伤害',
dmg: ({ talent, attr, calc }, { basic }) => {
let ret = talent.e['二段蓄力伤害'] * calc(attr.def) / 100 + (attr.e.plus || 0)
dmg: ({ talent, attr }, { basic }) => {
let ret = talent.e['二段蓄力伤害'] / 100 * attr.def
return basic(ret, 'e')
}
}]
@ -19,8 +19,8 @@ export const buffs = [{
title: '云堇被动队伍存在4元素类型角色时Q提供的普攻伤害提高[_q]',
sort: 9,
data: {
_q: ({ attr, calc }) => {
return calc(attr.def) * 0.115
_q: ({ attr }) => {
return attr.def * 0.115
}
}
}]

View File

@ -3,20 +3,20 @@ export const details = [{
dmg: ({ talent }, dmg) => dmg(talent.e['技能伤害'], 'e')
}, {
title: '三岩Q伤害',
dmg: ({ talent, attr, calc }, { basic }) => {
let ret = talent.q['技能伤害'] * calc(attr.def) / 100 + attr.q.plus * 1
dmg: ({ talent, attr }, { basic }) => {
let ret = talent.q['技能伤害'] / 100 * attr.def
return basic(ret, 'q')
}
}, {
title: '三岩Q每跳伤害',
dmg: ({ talent, attr, calc }, { basic }) => {
let ret = talent.q['岩晶崩破伤害'] * calc(attr.def) / 100 + attr.q.plus * 1
dmg: ({ talent, attr }, { basic }) => {
let ret = talent.q['岩晶崩破伤害'] / 100 * attr.def
return basic(ret, 'q')
}
}, {
title: 'Q每跳治疗',
cons: 4,
dmg: ({ attr, calc }, { heal }) => heal(0.5 * calc(attr.def))
dmg: ({ attr }, { heal }) => heal(0.5 * attr.def)
}]
export const mainAttr = 'atk,def,cpct,cdmg'
@ -27,6 +27,13 @@ export const buffs = [{
defPlus: ({ talent }) => talent.e['防御力提升'] * 1,
dmg: 15
}
}, {
title: '天赋-报恩之守基于防御力提高E伤害[ePlus]提高Q伤害[qPlus]',
sort: 9,
data: {
ePlus: ({ attr }) => 1.56 * attr.def,
qPlus: ({ attr }) => 0.156 * attr.def
}
}, {
title: '五郎被动释放E后防御力提高25%',
data: {

View File

@ -1,3 +1,5 @@
import { Format } from '#miao'
export const details = [{
title: 'E伤害',
dmg: ({ talent }, dmg) => dmg(talent.e['基础伤害'], 'e')
@ -8,6 +10,21 @@ export const details = [{
title: 'Q每跳伤害',
params: { q: true },
dmg: ({ talent }, dmg) => dmg(talent.q['闪雷伤害'], 'q')
}, {
title: 'E弹反护盾量',
dmg: ({ talent, attr }, { shield }) => shield(talent.e['护盾吸收量2'][0] / 100 * attr.hp + talent.e['护盾吸收量2'][1])
}, {
title: 'Q护盾量',
check: ({ cons }) => cons >= 1,
dmg: ({ attr }, { shield }) => shield(0.16 * attr.hp)
}, {
title: 'Q伤害减免',
dmg: ({ talent }) => {
return {
avg: Format.percent(talent.q['伤害减免'] / 100),
type: 'text'
}
}
}]
export const mainAttr = 'atk,cpct,cdmg'

View File

@ -11,10 +11,11 @@ export const details = [{
dmg: ({ talent, calc, attr, cons }, { basic }) => {
let pct = talent.e['剑舞步/旋舞步一段伤害2'][0] * 1 + talent.e['剑舞步/旋舞步二段伤害2'][0] * 1
let ret1 = basic(calc(attr.hp) * pct / 100, 'e')
let dynamicDmg = 0
if (cons >= 1) {
attr.e.dmg += 65
dynamicDmg = 65
}
let ret2 = basic(calc(attr.hp) * talent.e['水月/水轮伤害2'][0] / 100, 'e')
let ret2 = basic(calc(attr.hp) * talent.e['水月/水轮伤害2'][0] / 100, 'e', false, { dynamicDmg })
return {
dmg: ret1.dmg + ret2.dmg,
avg: ret2.avg + ret2.avg

View File

@ -15,10 +15,11 @@ export const details = [{
dmg: ({ talent, calc, attr, cons }, { basic }) => {
let pct = talent.e['剑舞步/旋舞步一段伤害2'][0] * 1 + talent.e['剑舞步/旋舞步二段伤害2'][0] * 1
let ret1 = basic(calc(attr.hp) * pct / 100, 'e')
let dynamicDmg = 0
if (cons >= 1) {
attr.e.dmg += 65
dynamicDmg = 65
}
let ret2 = basic(calc(attr.hp) * talent.e['水月/水轮伤害2'][0] / 100, 'e')
let ret2 = basic(calc(attr.hp) * talent.e['水月/水轮伤害2'][0] / 100, 'e', false, { dynamicDmg })
return {
dmg: ret1.dmg + ret2.dmg,
avg: ret2.avg + ret2.avg

View File

@ -16,8 +16,8 @@ export const buffs = [{
title: '蝶引来生开E获得[atkPlus]点攻击力加成',
sort: 9,
data: {
atkPlus: ({ talent, attr, calc }) => {
return Math.min(talent.e['攻击力提高'] * calc(attr.hp) / 100, attr.atk.base * 4)
atkPlus: ({ talent, attr }) => {
return Math.min(talent.e['攻击力提高'] * attr.hp / 100, attr.atk.base * 4)
}
}
}, {

View File

@ -1,62 +1,61 @@
export const details = [{
title: '半血开E重击',
params: { team: false },
dmg: ({ talent }, dmg) => dmg(talent.a['重击伤害'], 'a2')
}, {
title: '半血开E重击蒸发',
params: { team: false },
dmg: ({ talent }, dmg) => dmg(talent.a['重击伤害'], 'a2', 'vaporize')
}, {
title: '胡桃双水半血重击蒸发',
params: { team: true},
dmg: ({ talent }, dmg) => dmg(talent.a['重击伤害'], 'a2', 'vaporize')
}, {
title: '半血开E后Q蒸发',
params: { team: false },
dmg: ({ talent }, dmg) => dmg(talent.q['低血量时技能伤害'], 'q', 'vaporize')
}, {
title: '胡桃双水半血Q蒸发',
params: { team: true},
dmg: ({ talent }, dmg) => dmg(talent.q['低血量时技能伤害'], 'q', 'vaporize')
}]
export const defDmgIdx = 2
export const mainAttr = 'hp,atk,cpct,cdmg,mastery'
export const defParams = {
team: true
title: '半血开E重击',
params: { team: false },
dmg: ({ talent }, dmg) => dmg(talent.a['重击伤害'], 'a2')
}, {
title: '半血开E重击蒸发',
params: { team: false },
dmg: ({ talent }, dmg) => dmg(talent.a['重击伤害'], 'a2', 'vaporize')
}, {
title: '胡桃双水半血重击蒸发',
params: { team: true },
dmg: ({ talent }, dmg) => dmg(talent.a['重击伤害'], 'a2', 'vaporize')
}, {
title: '半血开E后Q蒸发',
params: { team: false },
dmg: ({ talent }, dmg) => dmg(talent.q['低血量时技能伤害'], 'q', 'vaporize')
}, {
title: '胡桃双水半血Q蒸发',
params: { team: true },
dmg: ({ talent }, dmg) => dmg(talent.q['低血量时技能伤害'], 'q', 'vaporize')
}]
export const defDmgIdx = 2
export const mainAttr = 'hp,atk,cpct,cdmg,mastery'
export const defParams = {
team: true
}
export const buffs = [{
check: ({ params }) => params.team === true,
title: '双水共鸣:获得[hpPct]%生命值',
data: {
hpPct: 25
}
export const buffs = [{
check: ({ params }) => params.team === true,
title: '双水共鸣:获得[hpPct]%生命值',
data: {
hpPct: 25
}, {
title: '蝶引来生开E获得[atkPlus]点攻击力加成',
sort: 9,
data: {
atkPlus: ({ talent, attr }) => {
return Math.min(talent.e['攻击力提高'] * attr.hp / 100, attr.atk.base * 4)
}
},{
title: '蝶引来生开E获得[atkPlus]点攻击力加成',
sort: 9,
data: {
atkPlus: ({ talent, attr, calc }) => {
return Math.min(talent.e['攻击力提高'] * calc(attr.hp) / 100, attr.atk.base * 4)
}
}
}, {
title: '胡桃被动半血获得33%火伤加成',
data: {
dmg: 33
}
},{
check: ({ params }) => params.team === true,
title: '夜兰:获得平均[dmg]%增伤',
data: {
dmg: 35
}
},{
check: ({ params }) => params.team === true,
title: '钟离:降低敌人[kx]%全抗',
data: {
kx: 20
}
},'vaporize']
}
}, {
title: '胡桃被动半血获得33%火伤加成',
data: {
dmg: 33
}
}, {
check: ({ params }) => params.team === true,
title: '夜兰:获得平均[dmg]%增伤',
data: {
dmg: 35
}
}, {
check: ({ params }) => params.team === true,
title: '钟离:降低敌人[kx]%全抗',
data: {
kx: 20
}
}, 'vaporize']

View File

@ -1,7 +1,7 @@
{
"id": 10000096,
"name": "阿蕾奇诺",
"abbr": "阿蕾奇诺",
"abbr": "仆人",
"title": "孤暝厄月",
"star": 5,
"elem": "pyro",
@ -429,8 +429,8 @@
"name": "厄月将升",
"desc": [
"阿蕾奇诺振舞厄月血火之翼,回收并清除周围的血偿勒令,造成火元素范围伤害,并在此后清除元素战技「万相化灰」的冷却时间及为自己恢复生命值,回复量基于她的生命之契数值与攻击力。",
"<i>就提瓦特常识来说,满月以外的月相皆是仅炼金术与占星术会用到的厄运隐喻。",
"她梦中曾数次梦见的这一轮赤色之月,是噩兆吗?是,不过悲惨命运是属于激怒她的那些人的。</i>"
"<i>就提瓦特常识来说,满月以外的月相皆是仅炼金术与占星术会用到的厄运隐喻。</i>",
"<i>她梦中曾数次梦见的这一轮赤色之月,是噩兆吗?是,不过悲惨命运是属于激怒她的那些人的。</i>"
],
"tables": [
{

View File

@ -5,7 +5,7 @@ export const details = [{
}, {
title: 'E刹那之花伤害',
dmg: ({ talent, attr }, { basic }) => {
let ret = talent.e['刹那之花伤害'] * attr.def / 100 + attr.e.plus
let ret = talent.e['刹那之花伤害'] * attr.def / 100
return basic(ret, 'e')
}
}, {
@ -14,7 +14,7 @@ export const details = [{
half: true
},
dmg: ({ talent, attr }, { basic }) => {
let ret = talent.e['刹那之花伤害'] * attr.def / 100 + attr.e.plus
let ret = talent.e['刹那之花伤害'] * attr.def / 100
return basic(ret, 'e')
}
}, {

View File

@ -4,7 +4,7 @@ export default function (step, staticStep) {
title: '元素战技造成的伤害值提高[ePlus]',
sort: 9,
data: {
ePlus: ({ attr, calc, refine }) => calc(attr.def) * step(40)[refine] / 100
ePlus: ({ attr, refine }) => attr.def * step(40)[refine] / 100
}
},
腐殖之剑: {
@ -248,7 +248,7 @@ export default function (step, staticStep) {
hpPct: step(14 * 2)
}
}],
有乐御簾切: [staticStep('defPct', 20),{
有乐御簾切: [staticStep('defPct', 20), {
title: '附近的角色在场上造成岩元素伤害后,普通攻击伤害提升[aDmg]%,元素战伤害提升[eDmg]%',
refine: {
aDmg: step(16 * 2),