支持贯穿伤害计算等;新增仪玄伤害计算

This commit is contained in:
UCPr 2025-08-15 23:51:01 +08:00
parent 2c6e20d846
commit a1a3b2b171
21 changed files with 524 additions and 184 deletions

View file

@ -0,0 +1,103 @@
/** @type {import('../../BuffManager.ts').BuffManager['buffs']} */
export const buffs = [
{
name: '1影',
type: '暴击率',
value: 0.1
},
{
name: '2影',
type: '无视抗性',
value: 0.15,
range: ['RZ', 'EQ']
},
{
name: '4影',
type: '增伤',
value: 0.3 * 2,
include: ['EQX', 'EQM']
},
{
name: '6影',
type: '贯穿增伤',
value: 0.2
},
{
name: '核心被动:术法宗师',
type: '贯穿力',
value: ({ calc }) => Math.trunc(calc.get_HP() * 0.1)
},
{
name: '核心被动:术法宗师',
type: '增伤',
value: [0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6],
range: ['EQ', 'LT', 'RL', 'RZ'],
include: ['AXQ', 'AXZ']
},
{
name: '额外能力:玄墨暗涌',
type: '暴击伤害',
value: 0.4
}
]
/** @type {import('../../Calculator.ts').Calculator['skills']} */
export const skills = [
{ name: '侵蚀每段', type: '侵蚀' },
{ name: '普攻:霄云劲五段', type: 'AP5' },
// { name: '普攻:墨影凝云', type: 'AXP' },
{
name: '普攻:玄墨极阵(满蓄)',
type: 'AXQ',
after: ({ damage }) => damage.add('AXZ')
},
{
name: '普攻:青溟震击',
type: 'AXZ',
isHide: true
},
{
name: '蓄力普攻:凝云术(满蓄)',
type: 'EQX',
after: ({ damage }) => damage.add('EQM'),
},
{ name: '闪避反击:除祟一击', type: 'CF' },
{ name: '强化E1墨痕化形', type: 'EQP1P' },
{
name: '强化E1墨痕化形(满蓄或格挡)追加攻击',
type: 'EQP1Z',
isHide: true
},
{
name: '强化E1墨痕化形(满蓄或格挡)',
type: 'EQP1X',
dmg: (calc) => {
const dmg = calc.calc_skill({
...calc.find_skill('type', 'EQP1P'),
banCache: true,
after: ({ damage }) => damage.add('EQP1Z')
})
return dmg
}
},
{ name: '强化E2霄云迅击-破', type: 'EQP2' },
{ name: '强化E3青溟震击-破', type: 'EQP3' },
{
name: '强化E墨烬影消',
type: 'EQM',
isHide: true
},
{
name: '2影强化E符法千重-破',
type: 'EQF',
check: 2,
multiplier: 12
},
{ name: '连携技:玄墨迅击', type: 'RL' },
{ name: '终结技:青溟云影', type: 'RZQ' },
{
name: '终结技:符法千重',
type: 'RZF',
isMain: true
}
]

View file

@ -0,0 +1,43 @@
{
"skill": {
"AP5": [
1.137,1.241,1.345,1.449,1.553,1.657,1.761,1.865,1.969,2.073,2.177,2.281,2.385,2.489,2.593,2.697
],
"AXQ": [
3.052,3.33,3.608,3.886,4.164,4.442,4.72,4.998,5.276,5.554,5.832,6.11,6.388,6.666,6.944,7.222
],
"AXZ": [
1.106,1.207,1.308,1.409,1.51,1.611,1.712,1.813,1.914,2.015,2.116,2.217,2.318,2.419,2.52,2.621
],
"CF": [
2.196,2.396,2.596,2.796,2.996,3.196,3.396,3.596,3.796,3.996,4.196,4.396,4.596,4.796,4.996,5.196
],
"EQX": [
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
],
"EQP1P": [
3.003,3.276,3.549,3.822,4.095,4.368,4.641,4.914,5.187,5.46,5.733,6.006,6.279,6.552,6.825,7.098
],
"EQP1Z": [
1.496,1.632,1.768,1.904,2.04,2.176,2.312,2.448,2.584,2.72,2.856,2.992,3.128,3.264,3.4,3.536
],
"EQP2": [
3.706,4.043,4.38,4.717,5.054,5.391,5.728,6.065,6.402,6.739,7.076,7.413,7.75,8.087,8.424,8.761
],
"EQP3": [
4.264,4.652,5.04,5.428,5.816,6.204,6.592,6.98,7.368,7.756,8.144,8.532,8.92,9.308,9.696,10.084
],
"EQM": [
2.343,2.556,2.769,2.982,3.195,3.408,3.621,3.834,4.047,4.26,4.473,4.686,4.899,5.112,5.325,5.538
],
"RL": [
5.331,5.816,6.301,6.786,7.271,7.756,8.241,8.726,9.211,9.696,10.181,10.666,11.151,11.636,12.121,12.606
],
"RZQ": [
18.534,20.219,21.904,23.589,25.274,26.959,28.644,30.329,32.014,33.699,35.384,37.069,38.754,40.439,42.124,43.809
],
"RZF": [
14.662,15.995,17.328,18.661,19.994,21.327,22.66,23.993,25.326,26.659,27.992,29.325,30.658,31.991,33.324,34.657
]
}
}

View file

@ -47,7 +47,7 @@ export const skills = [
type: 'TC',
dmg: (calc) => {
const dmg = calc.calc_skill({
...calc.skills.find(skill => skill.type === '强击'),
...calc.find_skill('type', '强击'),
banCache: true,
after: ({ damage }) => damage.x(0.025)
})

View file

@ -1,6 +1,7 @@
/** @type {import('../../avatar.ts')['scoreFnc'][string]} */
export default function (avatar) {
const props = avatar.initial_properties
// (暴击率 * 2 + 爆伤 >= 200%) 且 (异常精通 < 300) 时转为直伤流规则
if (props.CRITRate * 2 + props.CRITDMG >= 2 && props.AnomalyProficiency < 300) {
return ['直伤流', {
"生命值百分比": 0,

View file

@ -22,8 +22,7 @@ export const buffs = [
{
name: '4影',
type: '异常增伤',
value: 0.18,
exclude: ['紊乱']
value: 0.18
},
{
name: '6影',

View file

@ -73,7 +73,7 @@ export const skills = [
banCache: true,
dmg: (calc) => {
const dmg = calc.calc_skill({
...calc.skills.find(skill => skill.type === '侵蚀·异放'),
...calc.find_skill('type', '侵蚀·异放'),
after: ({ damage }) => damage.x(5)
})
return dmg