mirror of
https://github.com/ZZZure/ZZZ-Plugin.git
synced 2025-12-16 13:17:32 +00:00
爱丽丝伤害计算
This commit is contained in:
parent
cf25160a38
commit
14af1a20e1
8 changed files with 149 additions and 11 deletions
|
|
@ -99,7 +99,9 @@ export class Calculator {
|
|||
logger.debug(`${logger.green(skill.type)}${skill.name}伤害计算:`);
|
||||
if (skill.dmg) {
|
||||
const dmg = skill.dmg(this);
|
||||
dmg.skill ||= skill;
|
||||
if (!dmg.skill || dmg.skill.name !== skill.name) {
|
||||
dmg.skill = skill;
|
||||
}
|
||||
logger.debug('自定义计算最终伤害:', dmg.result);
|
||||
return dmg;
|
||||
}
|
||||
|
|
@ -183,7 +185,7 @@ export class Calculator {
|
|||
return;
|
||||
logger.debug('增加伤害:' + d.skill.name, d.result);
|
||||
damage.result.expectDMG += d.result.expectDMG;
|
||||
damage.result.critDMG += d.result.critDMG;
|
||||
damage.result.critDMG += d.result.critDMG || d.result.expectDMG;
|
||||
};
|
||||
damage.fnc = (fnc) => {
|
||||
damage.result.critDMG = fnc(damage.result.critDMG);
|
||||
|
|
@ -444,7 +446,7 @@ export class Calculator {
|
|||
default: return 0;
|
||||
}
|
||||
}
|
||||
get(type, initial, skill, usefulBuffs = this.buffM.buffs, isRatio = false) {
|
||||
get(type, initial, skill = this.skill, usefulBuffs = this.buffM.buffs, isRatio = false) {
|
||||
return this.props[type] ??= this.buffM._filter(usefulBuffs, {
|
||||
element: skill?.element,
|
||||
range: [skill?.type],
|
||||
|
|
|
|||
|
|
@ -254,7 +254,9 @@ export class Calculator {
|
|||
logger.debug(`${logger.green(skill.type)}${skill.name}伤害计算:`)
|
||||
if (skill.dmg) {
|
||||
const dmg = skill.dmg(this)
|
||||
dmg.skill ||= skill
|
||||
if (!dmg.skill || dmg.skill.name !== skill.name) {
|
||||
dmg.skill = skill
|
||||
}
|
||||
logger.debug('自定义计算最终伤害:', dmg.result)
|
||||
return dmg
|
||||
}
|
||||
|
|
@ -334,7 +336,7 @@ export class Calculator {
|
|||
if (!d) return
|
||||
logger.debug('增加伤害:' + d.skill.name, d.result)
|
||||
damage.result.expectDMG += d.result.expectDMG
|
||||
damage.result.critDMG += d.result.critDMG
|
||||
damage.result.critDMG += d.result.critDMG || d.result.expectDMG
|
||||
}
|
||||
damage.fnc = (fnc) => {
|
||||
damage.result.critDMG = fnc(damage.result.critDMG)
|
||||
|
|
@ -672,7 +674,7 @@ export class Calculator {
|
|||
* 获取局内属性原始值
|
||||
* @param isRatio 是否启用buff.value为数值/字符串/数组类型且计算结果值<1时按 **`初始数值`** 百分比提高处理
|
||||
*/
|
||||
get(type: buff['type'], initial: number, skill: skill, usefulBuffs: buff[] = this.buffM.buffs, isRatio = false): number {
|
||||
get(type: buff['type'], initial: number, skill: skill = this.skill, usefulBuffs: buff[] = this.buffM.buffs, isRatio = false): number {
|
||||
return this.props[type] ??= this.buffM._filter(usefulBuffs, {
|
||||
element: skill?.element,
|
||||
range: [skill?.type],
|
||||
|
|
|
|||
|
|
@ -86,7 +86,6 @@ export const skills = [
|
|||
type: '灼烧',
|
||||
after: ({ damage }) => damage.x(18)
|
||||
})
|
||||
dmg.skill.name = '6影强化E双份额外灼烧'
|
||||
return dmg
|
||||
}
|
||||
},
|
||||
|
|
|
|||
90
model/damage/character/爱丽丝/calc.js
Normal file
90
model/damage/character/爱丽丝/calc.js
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
/** @type {import('../../BuffManager.ts').BuffManager['buffs']} */
|
||||
export const buffs = [
|
||||
{
|
||||
name: '1影',
|
||||
type: '无视防御',
|
||||
value: 0.2
|
||||
},
|
||||
{
|
||||
name: '2影',
|
||||
type: '异常增伤',
|
||||
value: 0.15,
|
||||
range: ['强击']
|
||||
},
|
||||
{
|
||||
name: '2影',
|
||||
type: '异常增伤',
|
||||
value: 0.15,
|
||||
range: ['紊乱'],
|
||||
element: 'Physical'
|
||||
},
|
||||
{
|
||||
name: '4影',
|
||||
type: '无视抗性',
|
||||
value: 0.1,
|
||||
element: 'Physical'
|
||||
},
|
||||
{
|
||||
name: '核心被动:剑心双虹',
|
||||
type: '倍率',
|
||||
value: 1.8,
|
||||
element: 'Physical',
|
||||
range: ['紊乱']
|
||||
},
|
||||
{
|
||||
name: '额外能力:寻奇猎幽',
|
||||
type: '异常精通',
|
||||
value: ({ calc }) => Math.max(0, calc.get_AnomalyMastery() - 140) * 1.6
|
||||
}
|
||||
]
|
||||
|
||||
/** @type {import('../../Calculator.ts').Calculator['skills']} */
|
||||
export const skills = [
|
||||
{ name: '强击', type: '强击' },
|
||||
{ name: '紊乱', type: '紊乱' },
|
||||
{
|
||||
name: '核心被动:持续伤害每段',
|
||||
type: 'TC',
|
||||
dmg: (calc) => {
|
||||
const dmg = calc.calc_skill({
|
||||
...calc.skills.find(skill => skill.type === '强击'),
|
||||
banCache: true,
|
||||
after: ({ damage }) => damage.x(0.025)
|
||||
})
|
||||
return dmg
|
||||
}
|
||||
},
|
||||
{ name: '普攻:星仪序曲五段', type: 'AP5' },
|
||||
{ name: '强化普攻:星仪序曲五段', type: 'AQ5' },
|
||||
{ name: '蓄力普攻:星芒圆舞曲(一蓄)', type: 'AX1' },
|
||||
{ name: '蓄力普攻:星芒圆舞曲(二蓄)', type: 'AX2' },
|
||||
{
|
||||
name: '蓄力普攻:星芒圆舞曲(三蓄)',
|
||||
type: 'AX3',
|
||||
isMain: true,
|
||||
after: ({ damage }) => damage.add('强击')
|
||||
},
|
||||
{ name: '闪避反击:剑闪之仪', type: 'CF' },
|
||||
{ name: '强E:极光突刺·北十字', type: 'EQB' },
|
||||
{ name: '强E:极光突刺·南十字', type: 'EQN' },
|
||||
{ name: '连携技:星落间章', type: 'RL' },
|
||||
{
|
||||
name: '终结技:星芒终章',
|
||||
type: 'RZ',
|
||||
after: ({ avatar, damage }) => {
|
||||
if (avatar.rank >= 2) {
|
||||
damage.add('强击')
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '6影[决胜状态]额外攻击',
|
||||
type: 'Y6',
|
||||
check: 6,
|
||||
before: ({ areas, props, calc }) => {
|
||||
const anomalyProficiency = calc.get_AnomalyProficiency()
|
||||
props.暴击率 = 1
|
||||
areas.BasicArea = 33 * anomalyProficiency
|
||||
}
|
||||
}
|
||||
]
|
||||
34
model/damage/character/爱丽丝/data.json
Normal file
34
model/damage/character/爱丽丝/data.json
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
"skill": {
|
||||
"AP5": [
|
||||
1.303,1.422,1.541,1.66,1.779,1.898,2.017,2.136,2.255,2.374,2.493,2.612,2.731,2.85,2.969,3.088
|
||||
],
|
||||
"AQ5": [
|
||||
2.183,2.382,2.581,2.78,2.979,3.178,3.377,3.576,3.775,3.974,4.173,4.372,4.571,4.77,4.969,5.168
|
||||
],
|
||||
"AX1": [
|
||||
1.889,2.061,2.233,2.405,2.577,2.749,2.921,3.093,3.265,3.437,3.609,3.781,3.953,4.125,4.297,4.469
|
||||
],
|
||||
"AX2": [
|
||||
3.044,3.321,3.598,3.875,4.152,4.429,4.706,4.983,5.26,5.537,5.814,6.091,6.368,6.645,6.922,7.199
|
||||
],
|
||||
"AX3": [
|
||||
9.657,10.535,11.413,12.291,13.169,14.047,14.925,15.803,16.681,17.559,18.437,19.315,20.193,21.071,21.949,22.827
|
||||
],
|
||||
"CF": [
|
||||
2.84,3.099,3.358,3.617,3.876,4.135,4.394,4.653,4.912,5.171,5.43,5.689,5.948,6.207,6.466,6.725
|
||||
],
|
||||
"EQB": [
|
||||
4.6,5.019,5.438,5.857,6.276,6.695,7.114,7.533,7.952,8.371,8.79,9.209,9.628,10.047,10.466,10.885
|
||||
],
|
||||
"EQN": [
|
||||
5.32,5.804,6.288,6.772,7.256,7.74,8.224,8.708,9.192,9.676,10.16,10.644,11.128,11.612,12.096,12.58
|
||||
],
|
||||
"RL": [
|
||||
6.663,7.269,7.875,8.481,9.087,9.693,10.299,10.905,11.511,12.117,12.723,13.329,13.935,14.541,15.147,15.753
|
||||
],
|
||||
"RZ": [
|
||||
22.62,24.677,26.734,28.791,30.848,32.905,34.962,37.019,39.076,41.133,43.19,45.247,47.304,49.361,51.418,53.475
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
export const buffs = [
|
||||
{
|
||||
name: '1影',
|
||||
type: '异常增伤', // 异常易伤?
|
||||
type: '异常增伤',
|
||||
value: 0.16,
|
||||
is: {
|
||||
team: true
|
||||
|
|
@ -76,7 +76,6 @@ export const skills = [
|
|||
...calc.skills.find(skill => skill.type === '侵蚀·异放'),
|
||||
after: ({ damage }) => damage.x(5)
|
||||
})
|
||||
dmg.skill.name = '6影特殊异放·5护羽'
|
||||
return dmg
|
||||
}
|
||||
},
|
||||
|
|
|
|||
12
model/damage/weapon/十方锻星.js
Normal file
12
model/damage/weapon/十方锻星.js
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
/** @type {import('../BuffManager.ts').BuffManager['buffs']} */
|
||||
export const buffs = [
|
||||
{
|
||||
type: '异常掌控',
|
||||
value: [60, 69, 78, 87, 96]
|
||||
},
|
||||
{
|
||||
type: '增伤',
|
||||
value: [0.2, 0.23, 0.26, 0.29, 0.32].map(v => v * 2),
|
||||
element: 'Physical'
|
||||
}
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue