修正对物伤的处理

This commit is contained in:
yoimiya-kokomi 2022-11-05 23:47:44 +08:00
parent 6e3728d3b8
commit e8d76f529d
8 changed files with 84 additions and 72 deletions

View File

@ -64,11 +64,11 @@ export const characters = {
10000067: ['柯莱', 'Collei', '柯来', '科莱', '科来', '小天使', '须弥安柏', '草安柏', '须弥飞行冠军'],
10000068: ['多莉', 'Dori', '多利', '多力', '奸商'],
10000070: ['妮露', 'nilou', '尼露', '妮璐', '舞娘', '红牛'],
10000071: ['赛诺', 'cyno', '塞诺', '胡狼'],
10000071: ['赛诺', 'cyno', '塞诺', '胡狼', '大风纪官', '大风机关'],
10000072: ['坎蒂丝', 'candace', '坎迪斯'],
10000073: ['纳西妲', '草神', '小草神', '小吉祥', '小吉祥草王', '花神', '草萝莉', '羽毛球'],
10000073: ['纳西妲', '草神', '小吉祥', '大吉祥', '小草神', '大慈树王', '小吉祥草王', '草萝莉', '羽毛球', '摩诃善法大吉祥智慧主', '智慧主'],
10000074: ['莱依拉', '莱依菈', '来依菈', '来依拉'],
10000075: ['流浪者', '散兵', '国崩', '雷电国崩', '大炮', '雷电大炮', '雷大炮', '伞兵', '斯卡拉姆齐'],
10000075: ['流浪者', '散兵', '国崩', '雷电国崩', '大炮', '雷电大炮', '雷大炮', '伞兵', '斯卡拉姆齐', '七叶寂照秘密主', '正机之神'],
10000076: ['珐露珊', '法露珊', '法璐珊', '法露姗', '法璐姗', '珐露姗', '珐璐姗'],
// 自定义角色

View File

@ -70,14 +70,14 @@ let DmgAttr = {
ret.vaporize = 0 // 蒸发
ret.melt = 0 // 融化
ret.burning = 0 // 燃烧
ret.superconduct = 0 // 超导
ret.superConduct = 0 // 超导
ret.swirl = 0 // 扩散
ret.electro_charged = 0 // 感电
ret.electroCharged = 0 // 感电
ret.shatter = 0 // 碎冰
ret.overloaded = 0 // 超载
ret.bloom = 0 // 绽放
ret.burgeon = 0 // 烈绽放
ret.hyperbloom = 0 // 超绽放
ret.hyperBloom = 0 // 超绽放
ret.aggravate = 0 // 超激化
ret.spread = 0 // 蔓激化
ret.kx = 0 // 敌人抗性降低
@ -176,7 +176,7 @@ let DmgAttr = {
return
}
if (['vaporize', 'melt', 'burning', 'superconduct', 'swirl', 'electro_charged', 'shatter', 'overloaded', 'bloom', 'burgeon', 'hyperbloom', 'aggravate' , 'spread' ,'kx', 'fykx'].includes(key)) {
if (['vaporize', 'melt', 'burning', 'superConduct', 'swirl', 'electroCharged', 'shatter', 'overloaded', 'bloom', 'burgeon', 'hyperBloom', 'aggravate', 'spread', 'kx', 'fykx'].includes(key)) {
attr[key] += val * 1 || 0
}
})

View File

@ -29,7 +29,7 @@ let DmgCalc = {
// 倍率独立乘区
let multiNum = attr.multi / 100
// 增伤区
let dmgNum = (1 + dmg.base / 100 + dmg.plus / 100)
@ -82,20 +82,17 @@ let DmgCalc = {
if (cpctNum === 0) {
cdmgNum = 0
}
const isEle = ele !== false && ele !== 'phy'
// 反应区
let eleNum = (ele === false) ? 1 : DmgMastery.getBasePct(ele, attr.element)
let eleBase = (ele === false) ? 1 : 1 + attr[ele] / 100 + DmgMastery.getMultiple(ele, attr.mastery.base + attr.mastery.plus)
let eleNum = isEle ? DmgMastery.getBasePct(ele, attr.element) : 1
let eleBase = isEle ? 1 + attr[ele] / 100 + DmgMastery.getMultiple(ele, attr.mastery.base + attr.mastery.plus) : 1
let dmgBase = (mode === 'basic') ? basicNum : atkNum * pctNum * (1 + multiNum)
let ret = {}
console.log(atkNum, multiNum, dmgBase)
switch(ele)
{
switch (ele) {
case 'vaporize':
case 'melt':
{
case 'melt': {
ret = {
dmg: dmgBase * dmgNum * (1 + cdmgNum) * defNum * kNum * eleBase * eleNum,
avg: dmgBase * dmgNum * (1 + cpctNum * cdmgNum) * defNum * kNum * eleBase * eleNum
@ -104,23 +101,21 @@ let DmgCalc = {
}
case 'burning':
case 'superconduct':
case 'superConduct':
case 'swirl':
case 'electro_charged':
case 'electroCharged':
case 'shatter':
case 'overloaded':
case 'bloom':
case 'burgeon':
case 'hyperbloom':
{
case 'hyperBloom': {
eleBase *= eleBaseDmg[level]
ret = { avg: eleBase * eleNum * kNum }
break
}
case 'aggravate':
case 'spread':
{
case 'spread': {
eleBase *= eleBaseDmg[level]
dmgBase += eleBase * eleNum
ret = {
@ -130,12 +125,11 @@ let DmgCalc = {
break
}
default:
{
default: {
ret = {
dmg: dmgBase * dmgNum * (1 + cdmgNum) * defNum * kNum ,
dmg: dmgBase * dmgNum * (1 + cdmgNum) * defNum * kNum,
avg: dmgBase * dmgNum * (1 + cpctNum * cdmgNum) * defNum * kNum
}
}
}
}

View File

@ -1,3 +1,40 @@
export const eleMap = {
anemo: '风',
cryo: '冰',
electro: '雷',
geo: '岩',
hydro: '水',
pyro: '火',
dendro: '草'
}
// 元素反应类型及基数
export const erType = {
vaporize: { type: 'pct', num: ({ element }) => element === '水' ? 2 : 1.5 }, // 蒸发
melt: { type: 'pct', num: ({ element }) => element === '火' ? 2 : 1.5 }, // 融化
burning: { type: 'fusion', num: () => 1 }, // 燃烧
superConduct: { type: 'fusion', num: () => 2 }, // 超导
swirl: { type: 'fusion', num: () => 2.4 }, // 扩散
electroCharged: { type: 'fusion', num: () => 4.8 }, // 感电
shatter: { type: 'fusion', num: () => 6 }, // 碎冰
overloaded: { type: 'fusion', num: () => 8 }, // 超载
bloom: { type: 'fusion', num: () => 8 }, // 绽放
burgeon: { type: 'fusion', num: () => 12 }, // 烈绽放
hyperBloom: { type: 'fusion', num: () => 12 }, // 超绽放
aggravate: { type: 'bonus', num: () => 4.6 }, // 超激化
spread: { type: 'bonus', num: () => 5.0 } // 蔓激化
}
export const attrMap = {
atk: { type: 'pct', val: 5.83, title: '大攻击', text: '5.8%' },
hp: { type: 'pct', val: 5.83, title: '大生命', text: '5.8%' },
def: { type: 'pct', val: 7.29, title: '大防御', text: '7.3%' },
recharge: { type: 'plus', val: 6.48, title: '元素充能', text: '6.5%' },
mastery: { type: 'plus', val: 23.31, title: '元素精通', text: '23.3' },
cpct: { type: 'plus', val: 3.89, title: '暴击率', text: '3.9%' },
cdmg: { type: 'plus', val: 7.77, title: '暴击伤害', text: '7.8%' }
}
// 各等级精通基础伤害
export const eleBaseDmg = {
1: 4.291,
@ -90,41 +127,4 @@ export const eleBaseDmg = {
88: 340.864,
89: 351.274,
90: 361.713
}
export const eleMap = {
anemo: '风',
cryo: '冰',
electro: '雷',
geo: '岩',
hydro: '水',
pyro: '火',
dendro: '草'
}
// 元素反应类型及基数
export const erType = {
'vaporize': { type: 'pct', num: ({ element }) => element === '水' ? 2 : 1.5 },
'melt': { type: 'pct', num: ({ element }) => element === '火' ? 2 : 1.5 },
'burning': { type: 'fusion', num: () => 1 },
'superconduct': { type: 'fusion', num: () => 2 },
'swirl': { type: 'fusion', num: () => 2.4 },
'electro_charged': { type: 'fusion', num: () => 4.8 },
'shatter': { type: 'fusion', num: () => 6 },
'overloaded': { type: 'fusion', num: () => 8 },
'bloom': { type: 'fusion', num: () => 8 },
'burgeon': { type: 'fusion', num: () => 12 },
'hyperbloom': { type: 'fusion', num: () => 12 },
'aggravate': { type: 'bonus', num: () => 4.6 },
'spread': { type: 'bonus', num: () => 5.0 }
}
export const attrMap = {
atk: { type: 'pct', val: 5.83, title: '大攻击', text: '5.8%' },
hp: { type: 'pct', val: 5.83, title: '大生命', text: '5.8%' },
def: { type: 'pct', val: 7.29, title: '大防御', text: '7.3%' },
recharge: { type: 'plus', val: 6.48, title: '元素充能', text: '6.5%' },
mastery: { type: 'plus', val: 23.31, title: '元素精通', text: '23.3' },
cpct: { type: 'plus', val: 3.89, title: '暴击率', text: '3.9%' },
cdmg: { type: 'plus', val: 7.77, title: '暴击伤害', text: '7.8%' }
}
}

View File

@ -7,7 +7,7 @@ let DmgMastery = {
return (25 / 9) * mastery / (mastery + 1400)
} else if (typeCfg.type === 'fusion') {
return 16 * mastery / (mastery + 2000)
} else if(typeCfg.type === 'bonus'){
} else if (typeCfg.type === 'bonus') {
return 5 * mastery / (mastery + 1200)
}
return 0

View File

@ -45,7 +45,7 @@ export const usefulAttr = {
神里绫人: { hp: 50, atk: 75, def: 0, cp: 100, cd: 100, mastery: 0, dmg: 100, phy: 0, recharge: 30, heal: 0 },
八重神子: { hp: 0, atk: 75, def: 0, cp: 100, cd: 100, mastery: 75, dmg: 100, phy: 0, recharge: 55, heal: 0 },
申鹤: { hp: 0, atk: 100, def: 0, cp: 100, cd: 100, mastery: 0, dmg: 100, phy: 0, recharge: 55, heal: 0 },
云堇: { hp: 0, atk: 0, def: 100, cp: 80, cd: 80, mastery: 0, dmg: 80, phy: 0, recharge: 80, heal: 0 },
云堇: { hp: 0, atk: 75, def: 100, cp: 80, cd: 80, mastery: 0, dmg: 80, phy: 0, recharge: 80, heal: 0 },
荒泷一斗: { hp: 0, atk: 50, def: 100, cp: 100, cd: 100, mastery: 0, dmg: 100, phy: 0, recharge: 30, heal: 0 },
五郎: { hp: 0, atk: 75, def: 100, cp: 50, cd: 50, mastery: 0, dmg: 100, phy: 0, recharge: 75, heal: 0 },
班尼特: { hp: 100, atk: 50, def: 0, cp: 100, cd: 100, mastery: 0, dmg: 80, phy: 0, recharge: 55, heal: 100 },

View File

@ -204,8 +204,8 @@ const buffs = {
title: '如雷4超载、感电、超导反应造成的伤害提升40%超激化反应带来的伤害提升提高20%',
data: {
overloaded: 40,
electro_charged: 40,
superconduct: 40,
electroCharged: 40,
superConduct: 40,
aggravate: 20
}
},

View File

@ -1,10 +1,28 @@
export const details = [{
title: 'E长按伤害',
params: { e: true, q: false },
dmg: ({ talent }, dmg ) => dmg(talent.e['长按伤害'], 'e')
dmg: ({ talent }, dmg) => dmg(talent.e['长按伤害'], 'e')
}, {
title: '灭净三业伤害',
params: { e2: true, q: false },
dmg: ({ talent, calc, attr }, { basic }) => {
const td = talent.e['灭净三业伤害2']
const em = calc(attr.mastery)
const atk = calc(attr.atk)
return basic(td[0] * atk / 100 + td[1] * em / 100, 'e')
}
}, {
title: '开Q灭净三业伤害',
params: { e2: true },
dmg: ({ talent, calc, attr, cons }, { basic }) => {
const td = talent.e['灭净三业伤害2']
const em = calc(attr.mastery)
const atk = calc(attr.atk)
return basic(td[0] * atk / 100 + td[1] * em / 100, 'e')
}
}, {
title: '灭净三业蔓激化',
params: { e2: true, q: false },
dmg: ({ talent, calc, attr }, { basic }) => {
const td = talent.e['灭净三业伤害2']
const em = calc(attr.mastery)
@ -12,7 +30,7 @@ export const details = [{
return basic(td[0] * atk / 100 + td[1] * em / 100, 'e', 'spread')
}
}, {
title: '开Q灭净三业伤害',
title: '开Q灭净三业蔓激化',
params: { e2: true },
dmg: ({ talent, calc, attr, cons }, { basic }) => {
const td = talent.e['灭净三业伤害2']