完善伤害计算重定向

This commit is contained in:
UCPr 2025-01-20 18:17:45 +08:00
parent 8022384cf9
commit 2620deb95b
6 changed files with 56 additions and 186 deletions

View file

@ -22,8 +22,9 @@ export interface skill {
/**
*
*
* X"Y使Y的类型
*
* X"()Y()使Y的类型
* - range须全匹配redirect向后覆盖
* - range向后覆盖
*/
redirect?: string
/** 角色面板伤害统计中是否隐藏显示 */
@ -202,7 +203,8 @@ export class Calculator {
/** 缩小筛选范围 */
const usefulBuffs = this.buffM.filter({
element: skill.element,
range: skill.redirect ? [skill.type, skill.redirect] : [skill.type]
range: [skill.type],
redirect: skill.redirect
}, this)
const areas = {} as damage['areas']
if (skill.before) skill.before({ avatar: this.avatar, calc: this, usefulBuffs, skill, props, areas })
@ -294,7 +296,7 @@ export class Calculator {
logger.error('伤害计算错误:', e)
return
}
}).filter(v => v && !v.skill?.isHide)
}).filter(v => v && v.result?.expectDMG && !v.skill?.isHide)
}
/**
@ -401,7 +403,8 @@ export class Calculator {
get(type: buff['type'], initial: number, skill: skill, usefulBuffs: buff[] = this.buffM.buffs, isRatio = false): number {
return this.props![type] ??= this.buffM._filter(usefulBuffs, {
element: skill?.element,
range: skill?.redirect ? [skill.type, skill.redirect] : [skill?.type],
range: [skill?.type],
redirect: skill?.redirect,
type
}, this).reduce((previousValue, buff) => {
const { value } = buff