mirror of
https://github.com/ZZZure/ZZZ-Plugin.git
synced 2025-12-16 05:07:46 +00:00
新增莱特伤害计算等
This commit is contained in:
parent
cecc33b24d
commit
85d368619f
7 changed files with 123 additions and 19 deletions
|
|
@ -181,16 +181,18 @@ export class BuffManager {
|
|||
}
|
||||
return buffs;
|
||||
}
|
||||
/**
|
||||
* 遍历buff列表
|
||||
*/
|
||||
forEach(fnc) {
|
||||
return this.buffs.forEach(fnc);
|
||||
}
|
||||
filter(param, valueOcalc) {
|
||||
// @ts-ignore
|
||||
return this._filter(this.buffs, param, valueOcalc);
|
||||
}
|
||||
/** 遍历buff列表 */
|
||||
forEach(fnc) {
|
||||
return this.buffs.forEach(fnc);
|
||||
}
|
||||
/** 查找指定buff */
|
||||
find(type, value) {
|
||||
return this.buffs.find(buff => buff[type] === value);
|
||||
}
|
||||
operator(type, value, fnc) {
|
||||
this.forEach(buff => {
|
||||
if (buff[type] === value) {
|
||||
|
|
|
|||
|
|
@ -222,13 +222,6 @@ export class BuffManager {
|
|||
return buffs
|
||||
}
|
||||
|
||||
/**
|
||||
* 遍历buff列表
|
||||
*/
|
||||
forEach(fnc: (buff: buff, index: number) => void) {
|
||||
return this.buffs.forEach(fnc)
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据单个指定属性筛选buff,不作进一步判断
|
||||
*/
|
||||
|
|
@ -253,6 +246,16 @@ export class BuffManager {
|
|||
return this._filter(this.buffs, param, valueOcalc)
|
||||
}
|
||||
|
||||
/** 遍历buff列表 */
|
||||
forEach(fnc: (buff: buff, index: number) => void) {
|
||||
return this.buffs.forEach(fnc)
|
||||
}
|
||||
|
||||
/** 查找指定buff */
|
||||
find<T extends keyof buff>(type: T, value: buff[T]) {
|
||||
return this.buffs.find(buff => buff[type] === value)
|
||||
}
|
||||
|
||||
operator<T extends keyof buff>(type: T, value: buff[T], fnc: (buff: buff) => void) {
|
||||
this.forEach(buff => {
|
||||
if (buff[type] === value) {
|
||||
|
|
|
|||
|
|
@ -212,6 +212,7 @@ Buff来源可分为三大类:武器、套装、角色(影画、核心被动
|
|||
> - 核心技中的技能各不相同,自行定义即可
|
||||
|
||||
> - Y 影画(如柏妮思6影额外伤害)
|
||||
> - Y后接数字表示该技能为第n个影画的效果
|
||||
> - 影画中的技能各不相同,自行定义即可
|
||||
|
||||
> - 属性异常(特殊)
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ export const buffs = [
|
|||
name: '1影',
|
||||
type: '倍率',
|
||||
value: 1,
|
||||
range: ['TY', 'YY']
|
||||
range: ['TY', 'Y6Y']
|
||||
},
|
||||
{
|
||||
name: '2影',
|
||||
|
|
@ -22,14 +22,14 @@ export const buffs = [
|
|||
type: '无视抗性',
|
||||
value: 0.25,
|
||||
element: 'Fire',
|
||||
range: ['TY', 'YY', '灼烧']
|
||||
range: ['TY', 'Y6Y', '灼烧']
|
||||
},
|
||||
{
|
||||
name: '核心被动:燃油特调',
|
||||
type: '增伤',
|
||||
value: ({ calc }) => Math.min(30, Math.floor(calc.get_AnomalyProficiency() / 10)) * 0.01,
|
||||
isForever: true,
|
||||
range: ['TY', 'YY']
|
||||
range: ['TY', 'Y6Y']
|
||||
},
|
||||
{
|
||||
name: '额外能力:星火燎原',
|
||||
|
|
@ -70,13 +70,13 @@ export const skills = [
|
|||
},
|
||||
{
|
||||
name: '6影强化E双份额外余烬秒伤',
|
||||
type: 'YY',
|
||||
type: 'Y6Y',
|
||||
fixedMultiplier: 1.2,
|
||||
check: ({ avatar }) => avatar.rank >= 6
|
||||
},
|
||||
{
|
||||
name: '6影强化E双份额外灼烧',
|
||||
type: 'Y灼烧',
|
||||
type: 'Y6灼烧',
|
||||
check: ({ avatar }) => avatar.rank >= 6,
|
||||
dmg: (calc) => {
|
||||
const dmg = calc.calc_skill({
|
||||
|
|
|
|||
68
model/damage/character/莱特/calc.js
Normal file
68
model/damage/character/莱特/calc.js
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
/** @type {import('../../BuffManager.ts').BuffManager['buffs']} */
|
||||
export const buffs = [
|
||||
{
|
||||
name: '1影',
|
||||
type: '无视抗性',
|
||||
value: 0.1,
|
||||
element: ['Fire', 'Ice']
|
||||
},
|
||||
{
|
||||
name: '1影',
|
||||
type: '增伤',
|
||||
value: 0.3,
|
||||
isForever: true,
|
||||
range: ['AQ5Q']
|
||||
},
|
||||
{
|
||||
name: '2影',
|
||||
type: '增伤',
|
||||
element: ['Fire', 'Ice'],
|
||||
value: ({ buffM, calc }) => {
|
||||
const buff = buffM.find('name', '额外能力:斗志昂扬')
|
||||
if (!buff || !buff.status) return 0
|
||||
const value = calc.calc_value(buff.value)
|
||||
return value * 0.2
|
||||
},
|
||||
},
|
||||
{
|
||||
name: '核心被动:助燃剂',
|
||||
type: '冲击力',
|
||||
value: 'T'
|
||||
},
|
||||
{
|
||||
name: '核心被动:助燃剂',
|
||||
type: '无视抗性',
|
||||
value: 0.15,
|
||||
element: ['Fire', 'Ice']
|
||||
},
|
||||
{
|
||||
name: '额外能力:斗志昂扬',
|
||||
type: '增伤',
|
||||
element: ['Fire', 'Ice'],
|
||||
value: ({ calc }) => {
|
||||
const Impact = calc.get_Impact()
|
||||
const step = 0.0125 + Math.max(0, Math.floor((Impact - 170) / 10) * 25 / 10000)
|
||||
return Math.min(0.75, step * 20)
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
/** @type {import('../../Calculator.ts').Calculator['skills']} */
|
||||
export const skills = [
|
||||
{ name: '普攻:强力终结一击', type: 'AQ5Q' },
|
||||
{ name: '闪避反击:烈闪', type: 'CF' },
|
||||
{ name: '快速支援:烈闪-守', type: 'LK' },
|
||||
{ name: '强化E:V式日轮升拳-全冲程', type: 'EQ1' },
|
||||
{ name: '强化E:强力追击', type: 'EQ2' },
|
||||
{ name: '连携技:V式灼日炎', type: 'RL' },
|
||||
{ name: '终结技:W式桂冠终火', type: 'RZ' },
|
||||
{
|
||||
name: '6影[火焰冲击]',
|
||||
type: 'Y6',
|
||||
check: ({ avatar }) => avatar.rank >= 6,
|
||||
before: ({ calc, props }) => {
|
||||
const Impact = calc.get_Impact()
|
||||
props.倍率 = 2.5 + Math.min(5, Math.max(0, Math.floor(Impact - 170) * 5 / 100))
|
||||
}
|
||||
},
|
||||
]
|
||||
30
model/damage/character/莱特/data.json
Normal file
30
model/damage/character/莱特/data.json
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
"skill": {
|
||||
"AQ5Q": [
|
||||
4.354,4.75,5.146,5.542,5.938,6.334,6.73,7.126,7.522,7.918,8.314,8.71,9.106,9.502,9.898,10.294
|
||||
],
|
||||
"CF": [
|
||||
1.863,2.033,2.203,2.373,2.543,2.713,2.883,3.053,3.223,3.393,3.563,3.733,3.903,4.073,4.243,4.413
|
||||
],
|
||||
"LK": [
|
||||
0.697,0.761,0.825,0.889,0.953,1.017,1.081,1.145,1.209,1.273,1.337,1.401,1.465,1.529,1.593,1.657
|
||||
],
|
||||
"EQ1": [
|
||||
4.863,5.306,5.749,6.192,6.635,7.078,7.521,7.964,8.407,8.85,9.293,9.736,10.179,10.622,11.065,11.508
|
||||
],
|
||||
"EQ2": [
|
||||
2.927,3.194,3.461,3.728,3.995,4.262,4.529,4.796,5.063,5.33,5.597,5.864,6.131,6.398,6.665,6.932
|
||||
],
|
||||
"RL": [
|
||||
7.121,7.769,8.417,9.065,9.713,10.361,11.009,11.657,12.305,12.953,13.601,14.249,14.897,15.545,16.193,16.841
|
||||
],
|
||||
"RZ": [
|
||||
15.08,16.451,17.822,19.193,20.564,21.935,23.306,24.677,26.048,27.419,28.79,30.161,31.532,32.903,34.274,35.645
|
||||
]
|
||||
},
|
||||
"buff": {
|
||||
"T": [
|
||||
0.1,0.117,0.133,0.15,0.167,0.183,0.2
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -51,7 +51,7 @@ export const skills = [
|
|||
},
|
||||
{
|
||||
name: '6影小猪空中落地爆炸',
|
||||
type: 'Y',
|
||||
type: 'Y6',
|
||||
check: ({ avatar }) => avatar.rank >= 6,
|
||||
fixedMultiplier: 3,
|
||||
props: {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue