mirror of
https://github.com/ZZZure/ZZZ-Plugin.git
synced 2025-12-15 12:47:48 +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'
|
||||
}
|
||||
]
|
||||
|
|
@ -26883,7 +26883,7 @@
|
|||
"Id": 14140,
|
||||
"CodeName": "Weapon_S_1401",
|
||||
"Name": "十方锻星",
|
||||
"Desc": "繁星洒落在绝对秩序的罗网中,一如它们数年前映入少女澄澈的双眼。洋溢而出的自信,高雅,坚定,勇气与爱,此刻都锻作傲然的剑,紧紧握在她的掌间。\n\n「我想3D打印一个360度全方位无死角对称的模型…只要输入这样的指令就可以了吧?」——爱丽丝,在音擎烧出黑烟停止运作的前一分钟的发言",
|
||||
"Desc": "繁星洒落在绝对秩序的罗网中,一如它们数年前映入少女澄澈的双眼。洋溢而出的自信,高雅,坚定,勇气与爱,此刻都锻作傲然的剑,紧紧握在她的掌间。\n\n<color=#959595>「我想3D打印一个360度全方位无死角对称的模型…只要输入这样的指令就可以了吧?」——爱丽丝,在音擎烧出黑烟停止运作的前一分钟的发言</color>",
|
||||
"Desc2": "装备后可提升[异常]代理人的战斗能力",
|
||||
"Desc3": "繁星化剑,她将勇气与爱紧紧握在掌间。",
|
||||
"Rarity": "S",
|
||||
|
|
@ -27267,7 +27267,7 @@
|
|||
"Id": 14141,
|
||||
"CodeName": "Weapon_S_1411",
|
||||
"Name": "狸法七变化",
|
||||
"Desc": "精巧的小型音擎,原本是第一次参加学校空洞实习时发的便宜货,但因为体积小巧便于携带,柚叶始终难以割舍。\n\n第一次改造,增大了音擎的输出功率;第二次改造,追加了两个以太异常特化组件;第三次改造,尝试修改了内部布线,但不慎引起短路,把裙子烧了个洞;第四次改造,真斗帮忙修好了短路弄坏的热传导组件,但请真斗吃饭花的钱,已经足够买3个新的热传导组件了;第五次改造,更换了新的共鸣腔;第六次改造,提升了对驱动盘高频信号的响应速度。\n\n很好,它终于是一件完美的、可以陪伴主人出生入死的神兵利器了!然而——\n\n「爸,你见我音擎没?」\n\n「系果边啊,我帮你改左个外壳啦,之前太核突!唔可以畀人话我个女冇眼光!」\n\n「爸!这可是音擎诶,你搞这么华丽,万一弄坏了多可惜啊!」\n\n「咁就咪搞啲会整坏音擎嘅危险嘢啦!」",
|
||||
"Desc": "精巧的小型音擎,原本是第一次参加学校空洞实习时发的便宜货,但因为体积小巧便于携带,柚叶始终难以割舍。\n第一次改造,增大了音擎的输出功率;第二次改造,追加了两个以太异常特化组件;第三次改造,尝试修改了内部布线,但不慎引起短路,把裙子烧了个洞;第四次改造,真斗帮忙修好了短路弄坏的热传导组件,但请真斗吃饭花的钱,已经足够买3个新的热传导组件了;第五次改造,更换了新的共鸣腔;第六次改造,提升了对驱动盘高频信号的响应速度。\n很好,它终于是一件完美的、可以陪伴主人出生入死的神兵利器了!然而——\n「爸,你见我音擎没?」\n「系果边啊,我帮你改左个外壳啦,之前太核突!唔可以畀人话我个女冇眼光!」\n「爸!这可是音擎诶,你搞这么华丽,万一弄坏了多可惜啊!」\n「咁就咪搞啲会整坏音擎嘅危险嘢啦!」",
|
||||
"Desc2": "装备后可提升[支援]代理人的战斗能力",
|
||||
"Desc3": "巧夺天工的造型,饱含制作者对美的追求。",
|
||||
"Rarity": "S",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue