miao-plugin/resources/meta/character/妮露/calc_auto.js

197 lines
6.0 KiB
JavaScript
Raw Normal View History

// 纳西妲、妮露、艾尔海森、心海
const team2 = createTeam('海妮心妲', ['纳西妲', '艾尔海森', '心海'])
export const details = [{
title: '水月伤害',
params: { sy: true ,team:false},
dmg: ({ talent, calc, attr }, { basic }) => basic(calc(attr.hp) * talent.e['水月/水轮伤害2'][0] / 100, 'e')
}, {
title: '水月蒸发伤害',
params: { sy: true ,team:false},
dmg: ({ talent, calc, attr }, { basic }) => basic(calc(attr.hp) * talent.e['水月/水轮伤害2'][0] / 100, 'e', '蒸发')
}, {
title: '剑舞步三段伤害',
params: {team:false },
dmg: ({ talent, calc, attr, cons }, { basic }) => {
let pct = talent.e['剑舞步/旋舞步一段伤害2'][0] * 1 + talent.e['剑舞步/旋舞步二段伤害2'][0] * 1
let ret1 = basic(calc(attr.hp) * pct / 100, 'e')
if (cons >= 1) {
attr.e.dmg += 65
}
let ret2 = basic(calc(attr.hp) * talent.e['水月/水轮伤害2'][0] / 100, 'e')
return {
dmg: ret1.dmg + ret2.dmg,
avg: ret2.avg + ret2.avg
}
}
}, {
title: 'Q两段总伤害',
params: { team:false },
dmg: ({ talent, calc, attr }, { basic }) => basic(calc(attr.hp) * (talent.q['技能伤害'] + talent.q['永世流沔伤害']) / 100, 'q')
}, {
title: 'Q两段蒸发总伤害',
params: { team:false },
dmg: ({ talent, calc, attr }, { basic }) => basic(calc(attr.hp) * (talent.q['技能伤害'] + talent.q['永世流沔伤害']) / 100, 'q', '蒸发')
}, {
title: '丰穰之核伤害',
params: { bloom:true ,team:false },
dmg: ({calc, attr}, { reaction }) => {
return reaction('bloom')}
}, {
title: '海妮心二妲·丰穰之核',
params: {team: false, bloom: true, ...team2.params},
dmg: ({}, {reaction}) => {
// 草神二命固定暴击率20%、暴击伤害100%
const cpctNum = 20 / 100, cdmgNum = 100 / 100
// 计算丰穰之核非暴击伤害
const {avg} = reaction('bloom')
return {
// 暴击伤害
dmg: avg * (1 + cdmgNum),
// 平均伤害
avg: avg * (1 + cpctNum * cdmgNum)
}
}
}, {
title: '夜万妮香Q总蒸发伤害',
params: { team:true },
dmg: ({ talent, calc, attr }, { basic }) => basic(calc(attr.hp) * (talent.q['技能伤害'] + talent.q['永世流沔伤害']) / 100, 'q', '蒸发')
}]
export const mainAttr = 'hp,atk,cpct,cdmg,mastery'
export const defDmgIdx = 6
export const defParams = {
team:true,
}
export const buffs = [{
check: ({ params }) => params.team === false || team2.is(params),
title: '妮露天赋:丰穰之核增伤[bloom]%,元素精通提升100点',
data: {
bloom: ({ calc, attr }) => Math.min(400,(calc(attr.hp)-30000)/1000*9),
mastery:({ params }) => params.bloom ? 100 : 0
}
},{
title: '妮露1命水月造成的伤害提升65%',
cons: 1,
data: {
eDmg: ({ params }) => params.sy ? 65 : 0
}
}, {
check: ({params }) => params.team === false || team2.is(params),
title: '妮露2命金杯的丰馈下降低敌人35%水抗与草抗',
cons: 2,
data: {
kx: 35
}
}, {
check: ({ cons,params }) => cons <= 1 && params.team === true && team2.not(params),
title: '精1苍古0命万叶获得[dmg]%增伤(苍古普攻16增伤),增加[atkPct]%攻击,减抗[kx]%',
data: {
aDmg:16,
a2Dmg:16,
a3Dmg:16,
dmg: 40,
atkPct:20,
kx:40,
}
}, {
check: ({ cons,params }) => ((cons < 6 && cons >1) && params.team === true && team2.not(params)),
title: '精1苍古2命万叶获得[dmg]%增伤(苍古普攻16增伤),增加[atkPct]%攻击,减抗[kx]%,精通[mastery]',
data: {
aDmg:16,
a2Dmg:16,
a3Dmg:16,
dmg: 48,
atkPct:20,
kx:40,
mastery:200
}
}, {
check: ({ cons,params }) => (cons >= 6 && params.team === true && team2.not(params)),
title: '精5苍古6命万叶获得[dmg]%增伤(苍古普攻32增伤),增加[atkPct]%攻击,减抗[kx]%,精通[mastery]',
data: {
aDmg:32,
a2Dmg:32,
a3Dmg:32,
dmg: 48,
atkPct:40,
kx:40,
mastery:200
}
}, {
check: ({ cons,params }) => (cons >= 4 && params.team === true && team2.not(params)),
title: '双水夜兰2层4命双水,夜兰4命[hpPct]%生命值,[dmg]增伤',
data: {
hpPct: 45,
dmg:30
}
}, {
check: ({ cons,params }) => (cons < 4 && params.team === true && team2.not(params)),
title: '双水夜兰:双水[hpPct]%生命值,[dmg]增伤',
data: {
hpPct: 25,
dmg:30
}
}, {
title: '妮露4命第三段舞步命中敌人Q伤害提高50%',
cons: 4,
data: {
qDmg: 50
}
}, {
title: '妮露6命提高暴击[cpct]%,爆伤[cdmg]%',
cons: 6,
data: {
cpct: ({ calc, attr }) => Math.min(30, calc(attr.hp) / 1000 * 0.6),
cdmg: ({ calc, attr }) => Math.min(60, calc(attr.hp) / 1000 * 1.2)
}
}, {
check: ({params}) => team2.is(params),
title: '双水双草共鸣:双水提升[hpPct]%生命值上限双草提升精通50点触发绽放再提升30点共提升[mastery]点',
data: {
hpPct: 25,
mastery: 50 + 30,
}
}, {
check: ({params}) => team2.is(params),
title: '千精草套纳西妲开Q增加[mastery]点精通,减[kx]%草抗',
data: {
mastery: 1000 * 0.25,
kx: 30
}
}, {
check: ({params}) => team2.is(params),
title: '精1千夜浮梦队伍中装备者以外的角色元素精通提升[mastery]点',
data: {
mastery: 40,
}
}, {
check: ({params}) => team2.is(params),
title: '纳西妲2命提供绽放反应固定20%暴击率和100%的暴击伤害',
data: {}
}, 'vaporize']
/**
* 创建队伍
* @param name 队伍名
* @param members 队员
* @return {{name, members, params, go, is, not}}
*/
function createTeam(name, members) {
const team = {name, members}
// 队伍出战
team.go = () => {
const params = {}
team.members.forEach(k => params[name + '_' + k] = true);
return params
}
team.params = team.go()
// 是否是当前配队
team.is = (params) => members.filter(k => params[name + '_' + k] === true).length === members.length
// 是否不是当前配队
team.not = (params) => !team.is(params)
return team
}