mirror of
https://github.com/ZZZure/ZZZ-Plugin.git
synced 2025-12-16 13:17:32 +00:00
新增耀嘉音伤害计算(前瞻)
This commit is contained in:
parent
2620deb95b
commit
2ee4b2ef09
5 changed files with 126 additions and 12 deletions
|
|
@ -89,13 +89,12 @@ export class BuffManager {
|
|||
return logger.warn('无效buff:', buff);
|
||||
// 武器buff职业检查
|
||||
if (buff.source === 'Weapon') {
|
||||
if (typeof buff.check === 'function') {
|
||||
const oriCheck = buff.check;
|
||||
buff.check = ({ avatar, buffM, calc }) => avatar.avatar_profession === weaponIDToProfession(avatar.weapon.id) && oriCheck({ avatar, buffM, calc });
|
||||
}
|
||||
else {
|
||||
buff.check = ({ avatar }) => avatar.avatar_profession === weaponIDToProfession(avatar.weapon.id);
|
||||
}
|
||||
const professionCheck = (avatar) => {
|
||||
const weapon_profession = weaponIDToProfession(avatar.weapon.id);
|
||||
return !weapon_profession || avatar.avatar_profession === weapon_profession;
|
||||
};
|
||||
const oriCheck = typeof buff.check === 'function' && buff.check;
|
||||
buff.check = ({ avatar, buffM, calc }) => professionCheck(avatar) && (!oriCheck || oriCheck({ avatar, buffM, calc }));
|
||||
}
|
||||
else if (buff.source === 'Rank') {
|
||||
buff.check ??= +buff.name.match(/\d/)?.[0];
|
||||
|
|
|
|||
|
|
@ -138,12 +138,12 @@ export class BuffManager {
|
|||
return logger.warn('无效buff:', buff)
|
||||
// 武器buff职业检查
|
||||
if (buff.source === 'Weapon') {
|
||||
if (typeof buff.check === 'function') {
|
||||
const oriCheck = buff.check
|
||||
buff.check = ({ avatar, buffM, calc }) => avatar.avatar_profession === weaponIDToProfession(avatar.weapon.id) && oriCheck({ avatar, buffM, calc })
|
||||
} else {
|
||||
buff.check = ({ avatar }) => avatar.avatar_profession === weaponIDToProfession(avatar.weapon.id)
|
||||
const professionCheck = (avatar: ZZZAvatarInfo) => {
|
||||
const weapon_profession = weaponIDToProfession(avatar.weapon.id)
|
||||
return !weapon_profession || avatar.avatar_profession === weapon_profession
|
||||
}
|
||||
const oriCheck = typeof buff.check === 'function' && buff.check
|
||||
buff.check = ({ avatar, buffM, calc }) => professionCheck(avatar) && (!oriCheck || oriCheck({ avatar, buffM, calc }))
|
||||
} else if (buff.source === 'Rank') {
|
||||
buff.check ??= +buff.name.match(/\d/)!?.[0]
|
||||
}
|
||||
|
|
|
|||
69
model/damage/character/耀嘉音/calc.js
Normal file
69
model/damage/character/耀嘉音/calc.js
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
/** @type {import('../../BuffManager.ts').BuffManager['buffs']} */
|
||||
export const buffs = [
|
||||
{
|
||||
name: '1影',
|
||||
type: '无视抗性',
|
||||
value: 0.06 * 3
|
||||
},
|
||||
{
|
||||
name: '2影',
|
||||
type: '攻击力',
|
||||
value: ({ avatar }) => Math.min(400, avatar.initial_properties.ATK * 0.19)
|
||||
},
|
||||
{
|
||||
name: '6影',
|
||||
type: '暴击率',
|
||||
value: 0.8,
|
||||
range: ['AQ', 'EP', 'EQZ', 'EZ', 'EY']
|
||||
},
|
||||
{
|
||||
name: '核心被动:《如歌的行板》',
|
||||
type: '攻击力',
|
||||
value: ({ avatar, calc }) => Math.min(1200, avatar.initial_properties.ATK * calc.calc_value('T')),
|
||||
},
|
||||
{
|
||||
name: '技能:咏叹华彩',
|
||||
type: '增伤',
|
||||
value: 'E1',
|
||||
range: ['AQ', 'E', 'R'] // 排除正常普攻
|
||||
},
|
||||
{
|
||||
name: '技能:咏叹华彩',
|
||||
type: '暴击伤害',
|
||||
value: 'E2',
|
||||
range: ['AQ', 'E', 'R']
|
||||
}
|
||||
]
|
||||
|
||||
/** @type {import('../../Calculator.ts').skill['before']} */
|
||||
const before = ({ avatar, calc, props, skill }) => {
|
||||
if (avatar.rank >= 6) props.倍率 = calc.get_SkillMultiplier(skill.type) * 2
|
||||
}
|
||||
|
||||
/** @type {import('../../Calculator.ts').Calculator['skills']} */
|
||||
export const skills = [
|
||||
{ name: '普攻:《随想曲》三段', type: 'AP3' },
|
||||
{
|
||||
name: '6影追加蓄力普攻三段',
|
||||
type: 'AP3',
|
||||
banCache: true,
|
||||
check: ({ avatar }) => avatar.rank >= 6,
|
||||
before: ({ usefulBuffs }) => usefulBuffs.push({
|
||||
name: '6影',
|
||||
type: '暴击率',
|
||||
value: 0.8
|
||||
})
|
||||
},
|
||||
{ name: '普攻:间奏/终曲每[震音]', type: 'AQ', before },
|
||||
{ name: '特殊技:《风铃与旧约》', type: 'EP', before },
|
||||
{ name: '和弦追加[震音]', type: 'EQZ', before },
|
||||
{ name: '天赋追加[震音]', type: 'EZ', before },
|
||||
{
|
||||
name: '追加[音簇]*3',
|
||||
type: 'EY',
|
||||
before,
|
||||
after: ({ damage }) => damage.x(3)
|
||||
},
|
||||
{ name: '连携技:《微醺协奏》', type: 'RL' },
|
||||
{ name: '终结技:《幻想式奏鸣》', type: 'RZ' }
|
||||
]
|
||||
39
model/damage/character/耀嘉音/data.json
Normal file
39
model/damage/character/耀嘉音/data.json
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
"skill": {
|
||||
"AP3": [
|
||||
2.707,2.954,3.201,3.448,3.695,3.942,4.189,4.436,4.683,4.93,5.177,5.424,5.671,5.918,6.165,6.412
|
||||
],
|
||||
"AQ": [
|
||||
0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1,1.05,1.1,1.15,1.2,1.25,1.3
|
||||
],
|
||||
"EP": [
|
||||
0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1,1.05,1.1,1.15,1.2,1.25,1.3
|
||||
],
|
||||
"EQZ": [
|
||||
0.46,0.501,0.544,0.586,0.628,0.67,0.712,0.754,0.796,0.838,0.88,0.922,0.964,1.006,1.048,1.09
|
||||
],
|
||||
"EZ": [
|
||||
0.46,0.501,0.544,0.586,0.628,0.67,0.712,0.754,0.796,0.838,0.88,0.922,0.964,1.006,1.048,1.09
|
||||
],
|
||||
"EY": [
|
||||
0.24,0.262,0.284,0.306,0.328,0.35,0.372,0.394,0.416,0.438,0.46,0.482,0.504,0.526,0.548,0.57
|
||||
],
|
||||
"RL": [
|
||||
6.718,7.329,7.94,8.551,9.162,9.773,10.384,10.995,11.606,12.217,12.828,13.439,14.05,14.661,15.272,15.883
|
||||
],
|
||||
"RZ": [
|
||||
19.598,21.38,23.162,24.944,26.726,28.508,30.29,32.072,33.854,35.636,37.418,39.2,40.982,42.764,44.546,46.328
|
||||
]
|
||||
},
|
||||
"buff": {
|
||||
"T": [
|
||||
0.22,0.24,0.26,0.28,0.3,0.32,0.35
|
||||
],
|
||||
"E1": [
|
||||
0.09,0.1,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19,0.2,0.21,0.22,0.23,0.25
|
||||
],
|
||||
"E2": [
|
||||
0.085,0.1,0.115,0.13,0.145,0.16,0.175,0.19,0.205,0.22,0.235,0.25,0.265,0.28,0.295,0.31
|
||||
]
|
||||
}
|
||||
}
|
||||
7
model/damage/weapon/玲珑妆匣.js
Normal file
7
model/damage/weapon/玲珑妆匣.js
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
/** @type {import('../BuffManager.ts').BuffManager['buffs']} */
|
||||
export const buffs = [
|
||||
{
|
||||
type: '增伤',
|
||||
value: [0.1, 0.115, 0.13, 0.145, 0.16].map(v => v * 2)
|
||||
}
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue