新增刃伤害计算及评分规则 (#613)

* 新增刃伤害计算及评分规则

* 更新神子 托马 珐露珊 白术 赛诺 银狼 伤害计算
This commit is contained in:
Aluxes 2023-07-30 15:15:11 +08:00 committed by GitHub
parent 8e8a469b4f
commit c19c731ce7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 395 additions and 166 deletions

View File

@ -46,14 +46,14 @@ export default class ProfileDmg extends Base {
let talentData = profile.talent || {} let talentData = profile.talent || {}
let detail = char.detail let detail = char.detail
let { isSr, isGs } = this let { isSr, isGs } = this
lodash.forEach((isSr ? 'a,e,q,t' : 'a,e,q').split(','), (key) => { lodash.forEach((isSr ? 'a,a2,e,q,t' : 'a,e,q').split(','), (key) => {
let level = lodash.isNumber(talentData[key]) ? talentData[key] : (talentData[key]?.level || 1) let level = lodash.isNumber(talentData[key]) ? talentData[key] : (talentData[key]?.level || 1)
let map = {} let map = {}
if (isGs && detail.talentData) { if (isGs && detail.talentData) {
lodash.forEach(detail.talentData[key], (ds, key) => { lodash.forEach(detail.talentData[key], (ds, key) => {
map[key] = ds[level - 1] map[key] = ds[level - 1]
}) })
} else if (isSr && detail.talent) { } else if (isSr && detail.talent && detail.talent[key]) {
lodash.forEach(detail.talent[key].tables, (ds) => { lodash.forEach(detail.talent[key].tables, (ds) => {
map[ds.name] = ds.values[level - 1] map[ds.name] = ds.values[level - 1]
}) })

View File

@ -3,6 +3,7 @@
* 如character/${name}/artis.js下有角色自定义规则优先使用自定义 * 如character/${name}/artis.js下有角色自定义规则优先使用自定义
*/ */
export const usefulAttr = { export const usefulAttr = {
:{ hp: 100, atk: 50, def: 0, speed: 100, cpct: 100, cdmg: 100, stance: 0, heal: 0, recharge: 50, effPct: 0, effDef: 0, dmg: 100 },
罗刹: { hp: 0, atk: 100, def: 0, speed: 100, cpct: 100, cdmg: 100, stance: 0, heal: 100, recharge: 100, effPct: 0, effDef: 50, dmg: 100 }, 罗刹: { hp: 0, atk: 100, def: 0, speed: 100, cpct: 100, cdmg: 100, stance: 0, heal: 100, recharge: 100, effPct: 0, effDef: 50, dmg: 100 },
银狼: { hp: 0, atk: 75, def: 0, speed: 100, cpct: 100, cdmg: 100, stance: 0, heal: 0, recharge: 75, effPct: 100, effDef: 0, dmg: 100 }, 银狼: { hp: 0, atk: 75, def: 0, speed: 100, cpct: 100, cdmg: 100, stance: 0, heal: 0, recharge: 75, effPct: 100, effDef: 0, dmg: 100 },
景元: { hp: 0, atk: 75, def: 0, speed: 100, cpct: 100, cdmg: 100, stance: 0, heal: 0, recharge: 50, effPct: 0, effDef: 0, dmg: 100 }, 景元: { hp: 0, atk: 75, def: 0, speed: 100, cpct: 100, cdmg: 100, stance: 0, heal: 0, recharge: 50, effPct: 0, effDef: 0, dmg: 100 },

View File

@ -0,0 +1,98 @@
export const details = [{
title: '普攻伤害',
dmg: ({ talent }, dmg) => dmg(talent.a['技能伤害'], 'a')
}, {
title: '强化普攻(单目标)',
params: { ebuff: true },
dmg: ({ talent, attr, calc }, { basic }) => {
const td1 = talent.a2['技能伤害·攻击倍率']
const td2 = talent.a2['技能伤害·生命倍率']
const atk = calc(attr.atk)
const hp = calc(attr.hp)
return basic(td1 * atk + td2 * hp, 'a')
}
}, {
title: '强化普攻(三目标)',
params: { ebuff: true },
dmg: ({ talent, attr, calc }, { basic }) => {
const td1 = talent.a2['技能伤害·攻击倍率'] + talent.a2['技能伤害·攻击倍率·相邻目标']*2
const td2 = talent.a2['技能伤害·生命倍率'] + talent.a2['技能伤害·生命倍率·相邻目标']*2
const atk = calc(attr.atk)
const hp = calc(attr.hp)
return basic( td1 * atk + td2 * hp, 'a')
}
}, {
title: '追加攻击',
params: { ebuff: true },
dmg: ({ talent, attr, calc }, { basic }) => {
const td1 = talent.t['技能伤害·攻击倍率']
const td2 = talent.t['技能伤害·生命倍率']
const atk = calc(attr.atk)
const hp = calc(attr.hp)
return basic( td1 * atk + td2 * hp, 't')
}
}, {
title: '终结技伤害(单目标)',
params: { ebuff: true },
dmg: ({ talent, attr, calc }, { basic }) => {
const td1 = talent.q['技能伤害·攻击倍率']
const td2 = talent.q['技能伤害·生命倍率']
const td3 = talent.q['技能伤害·已损失生命值倍率']
const atk = calc(attr.atk)
const hp = calc(attr.hp)
return basic( td1 * atk + td2 * hp + td3 * hp * 0.9, 'q')
}
}, {
title: '终结技伤害(三目标)',
params: { ebuff: true },
dmg: ({ talent, attr, calc }, { basic }) => {
const td1 = talent.q['技能伤害·攻击倍率'] + talent.q['技能伤害·攻击倍率·相邻目标']*2
const td2 = talent.q['技能伤害·生命倍率'] + talent.q['技能伤害·生命倍率·相邻目标']*2
const td3 = talent.q['技能伤害·已损失生命值倍率'] + talent.q['技能伤害·已损失生命值倍率·相邻目标']*2
const atk = calc(attr.atk)
const hp = calc(attr.hp)
return basic( td1 * atk + td2 * hp + td3 * hp * 0.9, 'q')
}
}]
export const defDmgIdx = 1
export const mainAttr = 'hp,atk,cpct,cdmg,speed'
export const buffs = [{
check: ({ params }) => params.ebuff === true,
title:'地狱变:造成伤害提高[dmg]%',
data: {
dmg: ({ talent }) => talent.e['伤害提高'] * 100
}
}, {
title: '行迹-坏劫隳亡天赋释放的追加攻击伤害提高20%',
tree: 2,
data: {
tDmg: 20
}
}, {
title:'刃1命终结技对指定敌方单体造成伤害值提高[qPlus]',
cons: 1,
data: {
qPlus: ({ attr, calc }) => 1.5 * calc(attr.hp) * 0.9
}
}, {
check: ({ params }) => params.ebuff === true,
title:'刃2命处于【地狱变】状态时暴击率提高15%',
cons: 2,
data: {
cpct: 15
}
}, {
title:'刃4命生命值降低至小于等于50%时提高生命值上限满Buff下提高40%',
cons: 4,
data: {
hpPct: 40
}
}, {
title:'刃6命追加攻击造成的伤害值额外提高[tPlus]',
cons: 6,
data: {
tPlus: ({ attr, calc }) => calc(attr.hp) * 0.5
}
}]

View File

@ -75,7 +75,7 @@
"desc": "消耗等同于刃生命上限<nobr>30.0%</nobr>的生命值,进入【地狱变】状态。<br />处于【地狱变】状态时无法施放战技,同时使自身造成的伤害提高<nobr>$1[i]%</nobr>,普攻【支离剑】强化为【无间剑树】,持续<nobr>3</nobr>回合。<br />若当前生命值不足施放战技时刃的当前生命值降低至1点。<br />该战技无法恢复能量。施放该战技后,本回合不会结束。", "desc": "消耗等同于刃生命上限<nobr>30.0%</nobr>的生命值,进入【地狱变】状态。<br />处于【地狱变】状态时无法施放战技,同时使自身造成的伤害提高<nobr>$1[i]%</nobr>,普攻【支离剑】强化为【无间剑树】,持续<nobr>3</nobr>回合。<br />若当前生命值不足施放战技时刃的当前生命值降低至1点。<br />该战技无法恢复能量。施放该战技后,本回合不会结束。",
"tables": { "tables": {
"1": { "1": {
"name": "TODO", "name": "伤害提高",
"isSame": false, "isSame": false,
"values": [ "values": [
0.12, 0.12,
@ -105,7 +105,7 @@
"desc": "将刃的当前生命值转化为生命上限的<nobr>50%</nobr>,并对敌方单体造成等同于刃<nobr>$1[i]%</nobr>攻击力+<nobr>$2[i]%</nobr>生命上限+<nobr>$3[i]%</nobr>本场战斗中累计已损失生命值的<span>风</span>属性伤害,同时对其相邻目标造成等同于刃<nobr>$4[f1]%</nobr>攻击力+<nobr>$5[i]%</nobr>生命上限+<nobr>$6[i]%</nobr>本场战斗中累计已损失生命值的<span>风</span>属性伤害。<br />本场战斗中累计已损失生命值最高不超过刃生命上限的<nobr>90.0%</nobr>,施放终结技后会清空并进行重新累计。", "desc": "将刃的当前生命值转化为生命上限的<nobr>50%</nobr>,并对敌方单体造成等同于刃<nobr>$1[i]%</nobr>攻击力+<nobr>$2[i]%</nobr>生命上限+<nobr>$3[i]%</nobr>本场战斗中累计已损失生命值的<span>风</span>属性伤害,同时对其相邻目标造成等同于刃<nobr>$4[f1]%</nobr>攻击力+<nobr>$5[i]%</nobr>生命上限+<nobr>$6[i]%</nobr>本场战斗中累计已损失生命值的<span>风</span>属性伤害。<br />本场战斗中累计已损失生命值最高不超过刃生命上限的<nobr>90.0%</nobr>,施放终结技后会清空并进行重新累计。",
"tables": { "tables": {
"1": { "1": {
"name": "TODO", "name": "技能伤害·攻击倍率",
"isSame": false, "isSame": false,
"values": [ "values": [
0.24, 0.24,
@ -126,7 +126,7 @@
] ]
}, },
"2": { "2": {
"name": "TODO", "name": "技能伤害·生命倍率",
"isSame": false, "isSame": false,
"values": [ "values": [
0.6, 0.6,
@ -147,7 +147,7 @@
] ]
}, },
"3": { "3": {
"name": "TODO", "name": "技能伤害·已损失生命值倍率",
"isSame": false, "isSame": false,
"values": [ "values": [
0.6, 0.6,
@ -168,7 +168,7 @@
] ]
}, },
"4": { "4": {
"name": "TODO", "name": "技能伤害·攻击倍率·相邻目标",
"isSame": false, "isSame": false,
"values": [ "values": [
0.096, 0.096,
@ -189,7 +189,7 @@
] ]
}, },
"5": { "5": {
"name": "TODO", "name": "技能伤害·生命倍率·相邻目标",
"isSame": false, "isSame": false,
"values": [ "values": [
0.24, 0.24,
@ -210,7 +210,7 @@
] ]
}, },
"6": { "6": {
"name": "TODO", "name": "技能伤害·已损失生命值倍率·相邻目标",
"isSame": false, "isSame": false,
"values": [ "values": [
0.24, 0.24,
@ -240,7 +240,7 @@
"desc": "刃受到伤害或消耗生命值时获得1层充能最多叠加5层。该效果每次受到攻击最多叠加1层。<br />当充能叠加至上限时立即对敌方全体施放1次<u>追加攻击</u>,造成等同于刃<nobr>$1[i]%</nobr>攻击力+<nobr>$2[i]%</nobr>生命上限的<span>风</span>属性伤害并回复等同于刃生命上限<nobr>25.0%</nobr>的生命值,施放追加攻击后,消耗所有充能。", "desc": "刃受到伤害或消耗生命值时获得1层充能最多叠加5层。该效果每次受到攻击最多叠加1层。<br />当充能叠加至上限时立即对敌方全体施放1次<u>追加攻击</u>,造成等同于刃<nobr>$1[i]%</nobr>攻击力+<nobr>$2[i]%</nobr>生命上限的<span>风</span>属性伤害并回复等同于刃生命上限<nobr>25.0%</nobr>的生命值,施放追加攻击后,消耗所有充能。",
"tables": { "tables": {
"1": { "1": {
"name": "TODO", "name": "技能伤害·攻击倍率",
"isSame": false, "isSame": false,
"values": [ "values": [
0.22, 0.22,
@ -261,7 +261,7 @@
] ]
}, },
"2": { "2": {
"name": "TODO", "name": "技能伤害·生命倍率",
"isSame": false, "isSame": false,
"values": [ "values": [
0.55, 0.55,
@ -299,7 +299,7 @@
"desc": "消耗等同于刃生命上限<nobr>10.0%</nobr>的生命值,对指定敌方单体造成等同于刃<nobr>$1[i]%</nobr>攻击力+<nobr>$2[i]%</nobr>生命上限的<span>风</span>属性伤害,同时对其相邻目标造成等同于刃<nobr>$3[i]%</nobr>攻击力+<nobr>$4[i]%</nobr>生命上限的<span>风</span>属性伤害。<br />若当前生命值不足施放【无间剑树】时刃的当前生命值降低至1点。<br />【无间剑树】无法恢复战技点。", "desc": "消耗等同于刃生命上限<nobr>10.0%</nobr>的生命值,对指定敌方单体造成等同于刃<nobr>$1[i]%</nobr>攻击力+<nobr>$2[i]%</nobr>生命上限的<span>风</span>属性伤害,同时对其相邻目标造成等同于刃<nobr>$3[i]%</nobr>攻击力+<nobr>$4[i]%</nobr>生命上限的<span>风</span>属性伤害。<br />若当前生命值不足施放【无间剑树】时刃的当前生命值降低至1点。<br />【无间剑树】无法恢复战技点。",
"tables": { "tables": {
"1": { "1": {
"name": "TODO", "name": "技能伤害·攻击倍率",
"isSame": false, "isSame": false,
"values": [ "values": [
0.2, 0.2,
@ -314,7 +314,7 @@
] ]
}, },
"2": { "2": {
"name": "TODO", "name": "技能伤害·生命倍率",
"isSame": false, "isSame": false,
"values": [ "values": [
0.5, 0.5,
@ -329,7 +329,7 @@
] ]
}, },
"3": { "3": {
"name": "TODO", "name": "技能伤害·攻击倍率·相邻目标",
"isSame": false, "isSame": false,
"values": [ "values": [
0.08, 0.08,
@ -344,7 +344,7 @@
] ]
}, },
"4": { "4": {
"name": "TODO", "name": "技能伤害·生命倍率·相邻目标",
"isSame": false, "isSame": false,
"values": [ "values": [
0.2, 0.2,

View File

@ -3,7 +3,7 @@ export const details = [{
dmg: ({ talent }, dmg) => dmg(talent.a['技能伤害'], 'a') dmg: ({ talent }, dmg) => dmg(talent.a['技能伤害'], 'a')
}, { }, {
title: '战技伤害', title: '战技伤害',
dmg: ({ talent }, dmg) => dmg(talent.e['单体伤害'], 'e') dmg: ({ talent }, dmg) => dmg(talent.e['技能伤害'], 'e')
}, { }, {
title: '终结技伤害', title: '终结技伤害',
dmg: ({ talent, cons }, dmg) => { dmg: ({ talent, cons }, dmg) => {
@ -22,7 +22,7 @@ export const buffs = [{
}, { }, {
title: '银狼战技:添加弱点降低对方对应属性抗性[kx]%', title: '银狼战技:添加弱点降低对方对应属性抗性[kx]%',
data: { data: {
kx: ({ talent }) => talent.e['伤害抗性降低'] * 100 kx: 20
} }
}, { }, {
title: '银狼终结技:释放终结技降低敌方防御[enemyDef]%', title: '银狼终结技:释放终结技降低敌方防御[enemyDef]%',

View File

@ -74,7 +74,7 @@
"desc": "有<nobr>$1[i]%</nobr>的<u>基础概率</u>为指定敌方单体目标添加1个场上我方目标持有属性的弱点且该弱点对应属性的抗性降低<nobr>20.0%</nobr>,持续<nobr>2</nobr>回合。若添加的是敌方目标原有属性的弱点,则不会触发对应属性的抗性降低效果。<br />单个敌方目标仅能被银狼添加1个弱点当银狼对其再次添加弱点时仅保留最新添加的弱点。<br />有<nobr>100.0%</nobr>的<u>基础概率</u>额外使该目标的全属性抗性降低<nobr>$2[f1]%</nobr>,持续<nobr>2</nobr>回合。<br />对该目标造成等同于银狼<nobr>$3[i]%</nobr>攻击力的<span>量子</span>属性伤害。", "desc": "有<nobr>$1[i]%</nobr>的<u>基础概率</u>为指定敌方单体目标添加1个场上我方目标持有属性的弱点且该弱点对应属性的抗性降低<nobr>20.0%</nobr>,持续<nobr>2</nobr>回合。若添加的是敌方目标原有属性的弱点,则不会触发对应属性的抗性降低效果。<br />单个敌方目标仅能被银狼添加1个弱点当银狼对其再次添加弱点时仅保留最新添加的弱点。<br />有<nobr>100.0%</nobr>的<u>基础概率</u>额外使该目标的全属性抗性降低<nobr>$2[f1]%</nobr>,持续<nobr>2</nobr>回合。<br />对该目标造成等同于银狼<nobr>$3[i]%</nobr>攻击力的<span>量子</span>属性伤害。",
"tables": { "tables": {
"1": { "1": {
"name": "单体伤害", "name": "基础概率",
"isSame": false, "isSame": false,
"values": [ "values": [
0.75, 0.75,
@ -95,7 +95,7 @@
] ]
}, },
"2": { "2": {
"name": "基础概率", "name": "全属性抗性降低",
"isSame": false, "isSame": false,
"values": [ "values": [
0.075, 0.075,
@ -116,7 +116,7 @@
] ]
}, },
"3": { "3": {
"name": "伤害抗性降低", "name": "技能伤害",
"isSame": false, "isSame": false,
"values": [ "values": [
0.98, 0.98,

View File

@ -2,18 +2,33 @@ export const details = [{
check: ({ cons }) => cons < 2, check: ({ cons }) => cons < 2,
dmgKey: 'e', dmgKey: 'e',
title: '叄阶杀生樱伤害', title: '叄阶杀生樱伤害',
dmg: ({ talent, attr }, dmg) => dmg(talent.e['杀生樱伤害·叁阶'], 'e') dmg: ({ talent }, dmg) => dmg(talent.e['杀生樱伤害·叁阶'], 'e')
}, { }, {
check: ({ cons }) => cons >= 2, check: ({ cons }) => cons >= 2,
dmgKey: 'e', dmgKey: 'e',
title: '肆阶杀生樱伤害', title: '肆阶杀生樱伤害',
dmg: ({ talent, attr }, dmg) => dmg(talent.e['杀生樱伤害·肆阶'], 'e') dmg: ({ talent }, dmg) => dmg(talent.e['杀生樱伤害·肆阶'], 'e')
}, { }, {
title: 'Q天狐霆雷伤害', check: ({ cons }) => cons < 2,
dmg: ({ talent }, dmg) => dmg(talent.q['天狐霆雷伤害'], 'q') title: '叄阶杀生樱激化伤害',
dmg: ({ talent }, dmg) => dmg(talent.e['杀生樱伤害·叁阶'], 'e', 'aggravate')
}, {
check: ({ cons }) => cons >= 2,
title: '肆阶杀生樱激化伤害',
dmg: ({ talent }, dmg) => dmg(talent.e['杀生樱伤害·肆阶'], 'e', 'aggravate')
}, { }, {
title: '四段Q总伤害', title: '四段Q总伤害',
dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害'] + talent.q['天狐霆雷伤害'] * 3, 'q') dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害'] + talent.q['天狐霆雷伤害'] * 3, 'q')
}, {
title: '四段Q总激化伤害',
dmg: ({ talent }, dmg) => {
let q1j = dmg(talent.q['技能伤害'], 'q', '超激化')
let q2j = dmg(talent.q['天狐霆雷伤害'], 'q', '超激化')
return {
dmg: q1j.dmg + q2j.dmg * 3,
avg: q1j.avg + q2j.avg * 3
}
}
}] }]
export const mainAttr = 'atk,cpct,cdmg,mastery' export const mainAttr = 'atk,cpct,cdmg,mastery'

View File

@ -2,49 +2,70 @@ export const details = [{
check: ({ cons }) => cons < 2, check: ({ cons }) => cons < 2,
dmgKey: 'e', dmgKey: 'e',
title: '叄阶杀生樱伤害', title: '叄阶杀生樱伤害',
params: { team: false ,team2: false}, params: { team: false, team2: false },
dmg: ({ talent, attr }, dmg) => dmg(talent.e['杀生樱伤害·叁阶'], 'e') dmg: ({ talent }, dmg) => dmg(talent.e['杀生樱伤害·叁阶'], 'e')
}, { }, {
check: ({ cons }) => cons >= 2, check: ({ cons }) => cons >= 2,
dmgKey: 'e', dmgKey: 'e',
title: '肆阶杀生樱伤害', title: '肆阶杀生樱伤害',
params: { team: false ,team2: false}, params: { team: false, team2: false },
dmg: ({ talent, attr }, dmg) => dmg(talent.e['杀生樱伤害·肆阶'], 'e') dmg: ({ talent }, dmg) => dmg(talent.e['杀生樱伤害·肆阶'], 'e')
},{ }, {
check: ({ cons }) => cons < 2,
title: '叄阶杀生樱激化伤害',
params: { team: false, team2: false },
dmg: ({ talent }, dmg) => dmg(talent.e['杀生樱伤害·叁阶'], 'e', '超激化')
}, {
check: ({ cons }) => cons >= 2,
title: '肆阶杀生樱激化伤害',
params: { team: false, team2: false },
dmg: ({ talent }, dmg) => dmg(talent.e['杀生樱伤害·肆阶'], 'e', '超激化')
}, {
check: ({ cons }) => cons < 2, check: ({ cons }) => cons < 2,
dmgKey: 'e_t', dmgKey: 'e_t',
params: { team: true ,team2: false}, params: { team: true, team2: false },
title: '温三雷叄阶杀生樱伤害', title: '温三雷叄阶杀生樱伤害',
dmg: ({ talent, attr }, dmg) => dmg(talent.e['杀生樱伤害·叁阶'], 'e') dmg: ({ talent }, dmg) => dmg(talent.e['杀生樱伤害·叁阶'], 'e')
}, { }, {
check: ({ cons }) => cons >= 2, check: ({ cons }) => cons >= 2,
dmgKey: 'e_t', dmgKey: 'e_t',
params: { team: true ,team2: false}, params: { team: true, team2: false },
title: '温三雷肆阶杀生樱伤害', title: '温三雷肆阶杀生樱伤害',
dmg: ({ talent, attr }, dmg) => dmg(talent.e['杀生樱伤害·肆阶'], 'e') dmg: ({ talent }, dmg) => dmg(talent.e['杀生樱伤害·肆阶'], 'e')
}, { }, {
title: 'Q天狐霆雷伤害', title: '四段Q总伤害',
params: { team: false ,team2: false}, params: { team: false, team2: false },
dmg: ({ talent }, dmg) => dmg(talent.q['天狐霆雷伤害'], 'q') dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害'] + talent.q['天狐霆雷伤害'] * 3, 'q')
}, {
title: '四段Q总激化伤害',
params: { team: false, team2: false },
dmg: ({ talent }, dmg) => {
let q1j = dmg(talent.q['技能伤害'], 'q', '超激化')
let q2j = dmg(talent.q['天狐霆雷伤害'], 'q', '超激化')
return {
dmg: q1j.dmg + q2j.dmg * 3,
avg: q1j.avg + q2j.avg * 3
}
}
}, { }, {
title: '温三雷四段Q总伤害', title: '温三雷四段Q总伤害',
params: { team: true ,team2: false}, params: { team: true, team2: false },
dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害'] + talent.q['天狐霆雷伤害'] * 3, 'q') dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害'] + talent.q['天狐霆雷伤害'] * 3, 'q')
},{ }, {
check: ({ cons }) => cons < 2, check: ({ cons }) => cons < 2,
dmgKey: 'e_j', dmgKey: 'e_j',
params: { team: false,team2: true }, params: { team: false, team2: true },
title: '提八纳万叄阶杀生樱激化伤害', title: '提八纳万叄阶杀生樱激化伤害',
dmg: ({ talent, attr }, dmg) => dmg(talent.e['杀生樱伤害·叁阶'], 'e', '超激化') dmg: ({ talent }, dmg) => dmg(talent.e['杀生樱伤害·叁阶'], 'e', '超激化')
}, { }, {
check: ({ cons }) => cons >= 2, check: ({ cons }) => cons >= 2,
dmgKey: 'e_j', dmgKey: 'e_j',
params: { team: false,team2: true }, params: { team: false, team2: true },
title: '提八纳万肆阶杀生樱激化伤害', title: '提八纳万肆阶杀生樱激化伤害',
dmg: ({ talent, attr }, dmg) => dmg(talent.e['杀生樱伤害·肆阶'], 'e', '超激化') dmg: ({ talent }, dmg) => dmg(talent.e['杀生樱伤害·肆阶'], 'e', '超激化')
}, { }, {
title: '提八纳万四段Q总伤害', title: '提八纳万四段Q总伤害',
params: { team: false,team2: true }, params: { team: false, team2: true },
dmg: ({ talent }, dmg) => { dmg: ({ talent }, dmg) => {
let q1j = dmg(talent.q['技能伤害'], 'q', '超激化') let q1j = dmg(talent.q['技能伤害'], 'q', '超激化')
let q2j = dmg(talent.q['天狐霆雷伤害'], 'q', '超激化') let q2j = dmg(talent.q['天狐霆雷伤害'], 'q', '超激化')
@ -59,10 +80,9 @@ export const mainAttr = 'atk,cpct,cdmg,mastery'
export const defDmgKey = 'e_j' export const defDmgKey = 'e_j'
export const defParams = { export const defParams = {
team:true,team2:true team: true, team2: true
} }
export const buffs = [{ export const buffs = [{
check: ({ cons }) => cons >= 4, check: ({ cons }) => cons >= 4,
title: '4命效果杀生樱命中敌人后提高雷伤[dmg]%', title: '4命效果杀生樱命中敌人后提高雷伤[dmg]%',
@ -75,82 +95,94 @@ export const buffs = [{
data: { data: {
eDef: 60 eDef: 60
} }
}, {check: ({ cons,params }) => (cons >= 6 && params.team === true), }, {
title: '精5终末6命温迪增加[atkPct]%攻击,减抗[kx]%,精通[mastery]', check: ({ cons, params }) => (cons >= 6 && params.team === true),
data: { title: '精5终末6命温迪增加[atkPct]%攻击,减抗[kx]%,精通[mastery]',
atkPct:40, data: {
kx:60, atkPct: 40,
mastery:200 kx: 60,
} mastery: 200
}, {check: ({ cons,params }) => (cons < 6 && cons >1 && params.team === true), }
title: '精1终末0命温迪增加[atkPct]%攻击,减抗[kx]%,精通[mastery]', }, {
data: { check: ({ cons, params }) => (cons < 6 && cons > 1 && params.team === true),
atkPct:20, title: '精1终末0命温迪增加[atkPct]%攻击,减抗[kx]%,精通[mastery]',
kx:40, data: {
mastery:100 atkPct: 20,
} kx: 40,
}, {check: ({ params }) => params.team === true, mastery: 100
title: '天空宗室九条:增加[atkPlus]点攻击力,[atkPct]%攻击与[cdmg]%爆伤', }
data: { }, {
atkPlus: 794.2, check: ({ params }) => params.team === true,
atkPct:20, title: '天空宗室九条:增加[atkPlus]点攻击力,[atkPct]%攻击与[cdmg]%爆伤',
cdmg:60 data: {
} atkPlus: 794.2,
}, {check: ({ cons,params }) => (cons >= 2&&cons < 6&& params.team2 === true), atkPct: 20,
title: '精1千夜纳西妲提纳里增加精通[mastery](包括双草),减防[enemyDef]%', cdmg: 60
data: { }
mastery: 140, }, {
enemyDef: 30, check: ({ cons, params }) => (cons >= 2 && cons < 6 && params.team2 === true),
} title: '精1千夜纳西妲提纳里增加精通[mastery](包括双草),减防[enemyDef]%',
}, {check: ({ cons,params }) => (cons >= 6&& params.team2 === true), data: {
title: '精5千夜纳西妲提纳里增加精通[mastery](包括双草),减防[enemyDef](折合效果)%', mastery: 140,
data: { enemyDef: 30
mastery: 268, }
enemyDef: 12, }, {
} check: ({ cons, params }) => (cons >= 6 && params.team2 === true),
}, {check: ({ cons,params }) => (cons < 2&& params.team2 === true), title: '精5千夜纳西妲提纳里增加精通[mastery](包括双草),减防[enemyDef](折合效果)%',
title: '精1千夜草套纳西妲提纳里增加精通[mastery](包括双草)', data: {
data: { mastery: 268,
mastery: 140 enemyDef: 12
} }
}, {check: ({ cons,params }) => cons <= 1 && params.team2 === true, }, {
title: '精1苍古0命万叶获得[dmg]%增伤(苍古普攻16增伤),增加[atkPct]%攻击,减抗[kx]%', check: ({ cons, params }) => (cons < 2 && params.team2 === true),
data: { title: '精1千夜草套纳西妲提纳里增加精通[mastery](包括双草)',
aDmg:16, data: {
a2Dmg:16, mastery: 140
a3Dmg:16, }
dmg: 40, }, {
atkPct:20, check: ({ cons, params }) => cons <= 1 && params.team2 === true,
kx:40, title: '精1苍古0命万叶获得[dmg]%增伤(苍古普攻16增伤),增加[atkPct]%攻击,减抗[kx]%',
} data: {
}, {check: ({ cons,params }) => ((cons < 6 && cons >1) && params.team2 === true), aDmg: 16,
title: '精1苍古2命万叶获得[dmg]%增伤(苍古普攻16增伤),增加[atkPct]%攻击,减抗[kx]%,精通[mastery]', a2Dmg: 16,
data: { a3Dmg: 16,
aDmg:16, dmg: 40,
a2Dmg:16, atkPct: 20,
a3Dmg:16, kx: 40
dmg: 48, }
atkPct:20, }, {
kx:40, check: ({ cons, params }) => ((cons < 6 && cons > 1) && params.team2 === true),
} title: '精1苍古2命万叶获得[dmg]%增伤(苍古普攻16增伤),增加[atkPct]%攻击,减抗[kx]%,精通[mastery]',
}, {check: ({ cons,params }) => (cons >= 6 && params.team2 === true), data: {
title: '精5苍古6命万叶获得[dmg]%增伤(苍古普攻32增伤),增加[atkPct]%攻击,减抗[kx]%,精通[mastery]', aDmg: 16,
data: { a2Dmg: 16,
aDmg:32, a3Dmg: 16,
a2Dmg:32, dmg: 48,
a3Dmg:32, atkPct: 20,
dmg: 48, kx: 40,
atkPct:40, mastery: 200
kx:40, }
} }, {
},{ check: ({ cons, params }) => (cons >= 6 && params.team2 === true),
title: '精5苍古6命万叶获得[dmg]%增伤(苍古普攻32增伤),增加[atkPct]%攻击,减抗[kx]%,精通[mastery]',
data: {
aDmg: 32,
a2Dmg: 32,
a3Dmg: 32,
dmg: 48,
atkPct: 40,
kx: 40,
mastery: 200
}
}, {
title: '被动天赋:基于元素精通提高杀生樱伤害[eDmg]%', title: '被动天赋:基于元素精通提高杀生樱伤害[eDmg]%',
data: { data: {
eDmg: ({ attr, calc }) => calc(attr.mastery) * 0.15 eDmg: ({ attr, calc }) => calc(attr.mastery) * 0.15
} }
}, {check: ({ params }) => params.team === true, }, {
title: '恶曜开眼开E元素爆发伤害提升[qDmg]%', check: ({ params }) => params.team === true,
data: { title: '恶曜开眼开E元素爆发伤害提升[qDmg]%',
qDmg: 27 data: {
} qDmg: 27
}] }
}]

View File

@ -20,7 +20,7 @@ export const buffs = [{
shieldPlus: ({ params }) => params.e ? 25 : 0 shieldPlus: ({ params }) => params.e ? 25 : 0
} }
}, { }, {
title: '托马被动Q每段伤害提高[ePlus]', title: '托马被动Q每段伤害提高[qPlus]',
data: { data: {
qPlus: ({ calc, attr }) => calc(attr.hp) * 0.022 qPlus: ({ calc, attr }) => calc(attr.hp) * 0.022
} }

View File

@ -8,6 +8,13 @@ export const details = [{
}, { }, {
title: 'E减抗后Q伤害', title: 'E减抗后Q伤害',
dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害'], 'q') dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害'], 'q')
}, {
check: ({ cons }) => cons >= 6,
title: '开Q后E后台伤害',
dmg: ({ talent }, dmg) => dmg(talent.e['风压坍陷风涡伤害'], 'e')
}, {
title: '开Q后飓烈箭伤害',
dmg: ({ talent }, dmg) => dmg(talent.a['满蓄力瞄准射击'], 'a2')
}] }]
export const defDmgIdx = 1 export const defDmgIdx = 1
@ -22,7 +29,7 @@ export const buffs = [{
}, { }, {
title: '诡风之祸:降低敌人风抗[kx]%', title: '诡风之祸:降低敌人风抗[kx]%',
data: { data: {
kx: ({ talent }) => talent.q['风元素抗性降低'] kx: 30
} }
}, { }, {
title: '祈风之赐:获得风伤加成[dmg]%', title: '祈风之赐:获得风伤加成[dmg]%',

View File

@ -12,8 +12,36 @@ export const details = [{
}, { }, {
title: 'Q每跳护盾吸收量', title: 'Q每跳护盾吸收量',
dmg: ({ talent, calc, attr }, { shield }) => shield(talent.q['无郤气护盾吸收量2'][0] * calc(attr.hp) / 100 + talent.q['无郤气护盾吸收量2'][1]) dmg: ({ talent, calc, attr }, { shield }) => shield(talent.q['无郤气护盾吸收量2'][0] * calc(attr.hp) / 100 + talent.q['无郤气护盾吸收量2'][1])
}, {
check: ({ cons }) => cons < 6,
title: 'Q每跳伤害',
dmg: ({ talent }, dmg) => dmg(talent.q['灵气脉技能伤害'], 'q')
}, {
check: ({ cons }) => cons >= 6,
title: 'Q每跳伤害',
dmg: ({ talent }, dmg) => dmg(talent.q['灵气脉技能伤害'], 'q')
}, {
check: ({ cons }) => cons < 6,
title: 'Q每跳激化伤害',
dmg: ({ talent }, dmg) => dmg(talent.q['灵气脉技能伤害'], 'q', 'spread')
}, {
check: ({ cons }) => cons >= 6,
title: 'Q每跳激化伤害',
dmg: ({ talent }, dmg) => dmg(talent.q['灵气脉技能伤害'], 'q', 'spread')
}] }]
export const mainAttr = 'atk,hp,cpct,cdmg' export const mainAttr = 'atk,hp,cpct,cdmg'
export const buffs = [] export const buffs = [{
cons: 4,
title: '白术4命释放Q之后队伍中附近所有角色元素精通提升80点',
data: {
mastery: 80
}
}, {
cons: 6,
title: '白术6命基于生命值上限的8%,灵气脉造成的伤害提高[qPlus]',
data: {
qPlus: ({ attr, calc }) => calc(attr.hp) * 0.08
}
}]

View File

@ -1,60 +1,108 @@
/* let eDmg = false
* q: 1 - Q状态a伤害 let eAggrDmg = false
* q: 2 - Q状态E伤害 let eAllDmg = false
* q: 3 - Q状态冥祭 let ePlusDmg = false
* q: 4 - Q状态炮弹 let ePlusAggrDmg = false
* */
export const details = [{ export const details = [{
title: 'Q状态普攻首段', title: 'Q状态·普攻首段',
params: { q: 1 },
dmg: ({ talent }, dmg) => dmg(talent.q['一段伤害'], 'a') dmg: ({ talent }, dmg) => dmg(talent.q['一段伤害'], 'a')
}, { }, {
title: 'Q状态 E伤害', title: 'Q状态·E伤害',
params: { q: 2 },
dmg: ({ talent }, dmg) => dmg(talent.e['冥祭伤害'], 'e') dmg: ({ talent }, dmg) => dmg(talent.e['冥祭伤害'], 'e')
}, { }, {
title: 'Q+末途真眼 E伤害', title: 'Q状态·强化E伤害',
params: { q: 3 }, params: { showEBuff: true, eBuff: true },
dmg: ({ talent }, dmg) => dmg(talent.e['冥祭伤害'], 'e') dmg: ({ talent }, dmg) => {
}, { eDmg = dmg(talent.e['冥祭伤害'], 'e')
title: 'Q后强化E·超激化', eAggrDmg = dmg(talent.e['冥祭伤害'], 'e', 'aggravate')
params: { q: 3 }, return eDmg
dmg: ({ talent }, dmg) => dmg(talent.e['冥祭伤害'], 'e', '超激化')
}/*, {
title: 'Q+末途真眼 渡荒之雷',
params: { q: 4 },
dmg: ({ talent }, dmg) => dmg(100, 'e')
}*/]
export const defDmgIdx = 3
export const mainAttr = 'atk,cpct,cdmg,mastery'
export const defParams = { q: 3 }
export const buffs = [{
title: '赛诺QQ状态下提升元素精通100点',
data: {
mastery: ({ params }) => params.q ? 100 : 0
} }
}, { }, {
// 普攻提升雷伤 title: 'Q状态·QTE总伤害',
title: '赛诺2命普攻提高雷伤5层增加50%', params: { showEBuff: true },
dmg: ({ attr, calc }, { basic }) => {
const em = calc(attr.mastery)
const atk = calc(attr.atk)
const ePlustd = 1.00 * atk + em * 2.5
ePlusDmg = basic(ePlustd, 'e')
return {
dmg: eDmg.dmg + ePlusDmg.dmg * 3,
avg: eDmg.avg + ePlusDmg.avg * 3
}
}
}, {
title: 'Q状态·QTE超激化总伤害',
params: { showEBuff: true },
dmg: ({ attr, calc }, { basic }) => {
const em = calc(attr.mastery)
const atk = calc(attr.atk)
const ePlustd = 1.00 * atk + em * 2.5
ePlusAggrDmg = basic(ePlustd, 'e', 'aggravate')
eAllDmg = {
dmg: eAggrDmg.dmg + ePlusAggrDmg.dmg + ePlusDmg.dmg * 2,
avg: eAggrDmg.avg + ePlusAggrDmg.avg + ePlusDmg.avg * 2
}
return eAllDmg
}
}, {
check: ({ cons }) => cons < 6,
title: 'Q状态·一轮普攻5A+QTE超激化总伤害',
params: { showEBuff: true },
dmg: ({ talent }, dmg) => {
let a1Aggrdmg = dmg(talent.q['一段伤害'], 'a', 'aggravate')
let a2dmg = dmg(talent.q['二段伤害'], 'a')
let a3dmg = dmg(talent.q['三段伤害'], 'a')
let a4Aggrdmg = dmg(talent.q['四段伤害2'][0], 'a', 'aggravate')
let a4dmg = dmg(talent.q['四段伤害2'][1], 'a')
let a5dmg = dmg(talent.q['五段伤害'], 'a')
return {
dmg: eAllDmg.dmg + a1Aggrdmg.dmg + a2dmg.dmg + a3dmg.dmg + a4Aggrdmg.dmg + a4dmg.dmg + a5dmg.dmg,
avg: eAllDmg.avg + a1Aggrdmg.avg + a2dmg.avg + a3dmg.avg + a4Aggrdmg.avg + a4dmg.avg + a5dmg.avg
}
}
}, {
check: ({ cons }) => cons >= 6,
title: 'Q状态·一轮普攻5A+QTE超激化总伤害消耗4层豺祭',
params: { showEBuff: true },
dmg: ({ talent }, dmg) => {
let a1Aggrdmg = dmg(talent.q['一段伤害'], 'a', 'aggravate')
let a2dmg = dmg(talent.q['二段伤害'], 'a')
let a3dmg = dmg(talent.q['三段伤害'], 'a')
let a4Aggrdmg = dmg(talent.q['四段伤害2'][0], 'a', 'aggravate')
let a4dmg = dmg(talent.q['四段伤害2'][1], 'a')
let a5dmg = dmg(talent.q['五段伤害'], 'a')
return {
dmg: eAllDmg.dmg + a1Aggrdmg.dmg + a2dmg.dmg + a3dmg.dmg + a4Aggrdmg.dmg + a4dmg.dmg + a5dmg.dmg + ePlusDmg.dmg * 3 + ePlusAggrDmg.dmg,
avg: eAllDmg.avg + a1Aggrdmg.avg + a2dmg.avg + a3dmg.avg + a4Aggrdmg.avg + a4dmg.avg + a5dmg.avg + ePlusDmg.avg * 3 + ePlusAggrDmg.avg
}
}
}]
export const defDmgIdx = 5
export const mainAttr = 'atk,cpct,cdmg,mastery'
export const buffs = [{
title: '圣仪·煟煌随狼行Q状态下提升元素精通100点',
data: {
mastery: 100
}
}, {
title: '赛诺2命普攻后提高雷伤满5层Buff增加50%雷元素伤害',
cons: 2, cons: 2,
data: { data: {
dmg: 50 dmg: 50
} }
}, { }, {
title: '赛诺被动末途真眼状态提升E 35%伤害发射渡荒之雷造成100%攻击力伤害', check: ({ params }) => params.showEBuff === true,
title: '赛诺被动末途真眼状态提升秘仪·律渊渡魂35%伤害发射渡荒之雷造成100%攻击力伤害',
data: { data: {
eDmg: ({ params }) => [3, 4].includes(params.q) ? 35 : 0 eDmg: ({ params }) => params.eBuff ? 35 : 0
} }
}, { }, {
title: '赛诺被动:基于元素精通提升普攻[_aPlus]点伤害值,渡荒之雷提升[_ePlus]伤害值', title: '赛诺被动:基于元素精通提升普攻[aPlus]点伤害值,渡荒之雷提升[_ePlus]伤害值',
data: { data: {
aPlus: ({ attr, calc, params }) => params.q === 1 ? calc(attr.mastery) * 1.5 : 0, aPlus: ({ attr, calc }) => calc(attr.mastery) * 1.5,
_aPlus: ({ attr, calc, params }) => calc(attr.mastery) * 1.5, _ePlus: ({ attr, calc }) => calc(attr.mastery) * 2.5
ePlus: ({ attr, calc, params }) => params.q === 4 ? calc(attr.mastery) / 2.5 : 0,
_ePlus: ({ attr, calc, params }) => calc(attr.mastery) / 2.5
} }
}/*, 'aggravate'*/] }]