mirror of
https://github.com/ZZZure/ZZZ-Plugin.git
synced 2025-12-16 13:17:32 +00:00
修正追加攻击伤害计算增益判断
This commit is contained in:
parent
a54fee3edb
commit
6c77855f64
6 changed files with 17 additions and 13 deletions
|
|
@ -143,7 +143,8 @@ export class BuffManager {
|
|||
else if (param.redirect) {
|
||||
if (skillRange.some(ST => buffRange.some(BT => BT === ST)))
|
||||
return true;
|
||||
if (buffRange.some(BT => param.redirect.startsWith(BT)))
|
||||
const redirect = Array.isArray(param.redirect) ? param.redirect : [param.redirect];
|
||||
if (buffRange.some(BT => redirect.some(RT => RT.startsWith(BT))))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
) {
|
||||
|
|
|
|||
|
|
@ -276,7 +276,7 @@ export class Calculator {
|
|||
}
|
||||
/**
|
||||
* 获取局内属性原始值
|
||||
* @param isRatio 是否支持buff.value为数值类型且<1时按初始数值百分比提高处理
|
||||
* @param isRatio 是否支持buff.value为数值/字符串/数组类型且<1时按初始数值百分比提高处理
|
||||
*/
|
||||
get(type, initial, skill, usefulBuffs = this.buffM.buffs, isRatio = false) {
|
||||
return this.props[type] ??= this.buffM._filter(usefulBuffs, {
|
||||
|
|
|
|||
|
|
@ -25,8 +25,10 @@ export interface skill {
|
|||
* 当出现“X"(造成的伤害)被视为“Y”(伤害)时,可使用该参数指定Y的类型。
|
||||
* - 存在重定向时,range须全匹配,redirect向后覆盖
|
||||
* - 不存在重定向时,range向后覆盖
|
||||
*
|
||||
* 当为数组类型时(多类型共存),满足数组内其一类型即可,判断规则同上
|
||||
*/
|
||||
redirect?: string
|
||||
redirect?: string | string[]
|
||||
/** 角色面板伤害统计中是否隐藏显示 */
|
||||
isHide?: boolean
|
||||
/** 禁用伤害计算cache */
|
||||
|
|
@ -411,7 +413,7 @@ export class Calculator {
|
|||
|
||||
/**
|
||||
* 获取局内属性原始值
|
||||
* @param isRatio 是否支持buff.value为数值类型且<1时按初始数值百分比提高处理
|
||||
* @param isRatio 是否支持buff.value为数值/字符串/数组类型且<1时按初始数值百分比提高处理
|
||||
*/
|
||||
get(type: buff['type'], initial: number, skill: skill, usefulBuffs: buff[] = this.buffM.buffs, isRatio = false): number {
|
||||
return this.props[type] ??= this.buffM._filter(usefulBuffs, {
|
||||
|
|
|
|||
|
|
@ -39,12 +39,12 @@ export const skills = [
|
|||
{
|
||||
name: '特殊技:噬爪·噩梦袭影',
|
||||
type: 'EPLP',
|
||||
redirect: '追加攻击'
|
||||
redirect: ['EPLP', '追加攻击']
|
||||
},
|
||||
{
|
||||
name: '噬爪·噩梦袭影终结一击',
|
||||
type: 'EPLZ',
|
||||
redirect: '追加攻击'
|
||||
redirect: ['EPLZ', '追加攻击']
|
||||
},
|
||||
{ name: '强化特殊技:噬爪·瞬步', type: 'EQ' },
|
||||
{ name: '连携技:嗨,想不到吧', type: 'RL' },
|
||||
|
|
|
|||
|
|
@ -48,13 +48,13 @@ export const skills = [
|
|||
{
|
||||
name: '特殊技:苍光',
|
||||
type: 'EPC',
|
||||
redirect: '追加攻击',
|
||||
redirect: ['EPC', '追加攻击'],
|
||||
after: ({ damage }) => damage.add('EPC0')
|
||||
},
|
||||
{
|
||||
name: '特殊技:雷殛',
|
||||
type: 'EPL',
|
||||
redirect: '追加攻击'
|
||||
redirect: ['EPL', '追加攻击']
|
||||
},
|
||||
{ name: '强化特殊技:极雷断空', type: 'EQ' },
|
||||
{ name: '连携技:疾跃落雷', type: 'RL' },
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue