miao-plugin/models/character/CharTalent.js

60 lines
1.5 KiB
JavaScript
Raw Normal View History

/**
* 角色天赋相关处理
* */
import lodash from 'lodash'
const CharTalent = {
// 处理获取天赋数据
getAvatarTalent (char, talent, cons, mode) {
2023-05-21 18:13:38 +00:00
let { id, talentCons, game, isGs } = char
let ret = {}
2023-05-21 18:13:38 +00:00
let addTalent = {
gs: { a: 0, e: 3, q: 3 },
sr: { a: 1, e: 2, q: 2, t: 2 }
}
lodash.forEach(addTalent[game], (addNum, key) => {
let ds = talent[key]
if (!ds) {
return false
}
let value
let level
let original
let aPlus = id === 10000033
if (lodash.isNumber(ds)) {
value = ds
}
if (mode !== 'level') {
// 基于original计算level
value = value || ds.original || ds.level_original || ds.level || ds.level_current
2023-05-21 18:13:38 +00:00
if (value > 10 && isGs) {
mode = 'level'
} else {
original = value
2023-05-21 18:13:38 +00:00
if (key === 'a' && isGs) {
level = aPlus ? value + 1 : value
} else {
2023-05-21 18:13:38 +00:00
level = cons >= talentCons[key] ? (value + addNum) : value
}
}
}
if (mode === 'level') {
// 基于level计算original
value = value || ds.level || ds.level_current || ds.original || ds.level_original
level = value
2023-05-21 18:13:38 +00:00
if (key === 'a' && isGs) {
original = aPlus ? value - 1 : value
} else {
2023-05-21 18:13:38 +00:00
original = cons >= talentCons[key] ? (value - addNum) : value
}
}
ret[key] = { level, original }
})
if (lodash.isEmpty(ret)) {
return false
}
return ret
}
}
export default CharTalent