修正追加攻击伤害计算增益判断

This commit is contained in:
UCPr 2025-03-24 00:11:12 +08:00
parent a54fee3edb
commit 6c77855f64
6 changed files with 17 additions and 13 deletions

View file

@ -185,13 +185,13 @@ export class BuffManager {
}
_filter<T extends filterable>(buffs: buff[], type: T, value: buff[T]): buff[]
_filter(buffs: buff[], obj: Partial<Pick<buff, filterable>> & { element: element, redirect?: skill['type'] }, calc?: Calculator): buff[]
_filter(buffs: buff[], obj: Partial<Pick<buff, filterable>> & { element: element, redirect?: skill['redirect'] }, calc?: Calculator): buff[]
_filter(buffs: buff[], fnc: (buff: buff, index: number) => boolean): buff[]
_filter<T extends filterable>(
buffs: buff[],
param:
| T
| (Partial<Pick<buff, filterable>> & { element: element, redirect?: skill['type'] })
| (Partial<Pick<buff, filterable>> & { element: element, redirect?: skill['redirect'] })
| ((buff: buff, index: number) => boolean),
valueOcalc?: buff[T] | Calculator
) {
@ -221,7 +221,8 @@ export class BuffManager {
// 存在重定向时range须全匹配redirect向后覆盖
else if (param.redirect) {
if (skillRange.some(ST => buffRange.some(BT => BT === ST))) return true
if (buffRange.some(BT => param.redirect!.startsWith(BT))) return true
const redirect = Array.isArray(param.redirect) ? param.redirect : [param.redirect]
if (buffRange.some(BT => redirect.some(RT => RT.startsWith(BT)))) return true
return false
}
// 不存在重定向时range向后覆盖
@ -290,7 +291,7 @@ export class BuffManager {
* - range须全匹配redirect向后覆盖
* - range向后覆盖
*/
filter(obj: Partial<Pick<buff, filterable>> & { element: element, redirect?: skill['type'] }, calc?: Calculator): buff[]
filter(obj: Partial<Pick<buff, filterable>> & { element: element, redirect?: skill['redirect'] }, calc?: Calculator): buff[]
/**
* buff
*/
@ -298,7 +299,7 @@ export class BuffManager {
filter<T extends filterable>(
param:
| T
| (Partial<Pick<buff, filterable>> & { element: element, redirect?: skill['type'] })
| (Partial<Pick<buff, filterable>> & { element: element, redirect?: skill['redirect'] })
| ((buff: buff, index: number) => boolean),
valueOcalc?: buff[T] | Calculator
) {