mirror of
https://github.com/yoimiya-kokomi/miao-plugin.git
synced 2024-11-22 15:36:27 +00:00
修正新格式下原神面板查看的问题
This commit is contained in:
parent
af3cb93b25
commit
37e5d6c21a
@ -95,13 +95,12 @@ export default class AvatarArtis extends Base {
|
||||
arti.star = ds._star || ds.star || 5
|
||||
arti.main = ds.main
|
||||
arti.attrs = ds.attrs
|
||||
return true
|
||||
}
|
||||
} else {
|
||||
arti.name = ds.name || arti.name || ''
|
||||
arti.set = ds.set || Artifact.getSetNameByArti(arti.name) || ''
|
||||
arti.level = ds.level || 1
|
||||
arti.star = ds.star || 5
|
||||
|
||||
}
|
||||
if (ds.mainId || ds.main) {
|
||||
arti._name = ds._name || ds.name || arti._name || arti.name
|
||||
arti._set = ds._set || Artifact.getSetNameByArti(arti._name) || arti._set || ''
|
||||
|
@ -67,15 +67,16 @@ export default class ProfileArtis extends AvatarArtis {
|
||||
let artis = {}
|
||||
let setCount = {}
|
||||
let totalMark = 0
|
||||
let totalCrit = 0
|
||||
let totalVaild = 0
|
||||
let self = this
|
||||
this.forEach((arti, idx) => {
|
||||
let mark = ArtisMark.getMark(charCfg, idx, arti.main, arti.attrs, this.elem)
|
||||
// let crit = ArtisMark.getCritMark(charCfg, idx, arti.main, arti.attrs, this.elem)
|
||||
// let vaild = ArtisMark.getValidMark(charCfg, idx, arti.main, arti.attrs, this.elem)
|
||||
let mark = ArtisMark.getMark({
|
||||
charCfg,
|
||||
idx,
|
||||
arti,
|
||||
elem: this.elem,
|
||||
game: self.game
|
||||
})
|
||||
totalMark += mark
|
||||
// totalCrit += crit
|
||||
// totalVaild += vaild
|
||||
setCount[arti.set] = (setCount[arti.set] || 0) + 1
|
||||
if (!withDetail) {
|
||||
artis[idx] = {
|
||||
@ -85,8 +86,6 @@ export default class ProfileArtis extends AvatarArtis {
|
||||
}
|
||||
} else {
|
||||
let artifact = Artifact.get(arti.name, this.game)
|
||||
// console.log('artifact', artifact, arti)
|
||||
// console.log(`arti idx ${idx} ${artifact.name}\n\n\n`)
|
||||
artis[idx] = {
|
||||
name: artifact.name,
|
||||
set: artifact.setName,
|
||||
|
@ -111,22 +111,27 @@ let ArtisMark = {
|
||||
},
|
||||
|
||||
// 获取位置分数
|
||||
getMark (charCfg, posIdx, mainAttr, subAttr, elem = '') {
|
||||
getMark ({ charCfg, idx, arti, elem = '', game = 'gs' }) {
|
||||
if (game === 'sr') {
|
||||
return 0
|
||||
}
|
||||
let ret = 0
|
||||
let mainAttr = arti.main
|
||||
let subAttr = arti.attrs
|
||||
let { attrs, posMaxMark } = charCfg
|
||||
let key = mainAttr?.key
|
||||
if (!key) {
|
||||
return 0
|
||||
}
|
||||
let fixPct = 1
|
||||
posIdx = posIdx * 1
|
||||
if (posIdx >= 3) {
|
||||
idx = idx * 1
|
||||
if (idx >= 3) {
|
||||
let mainKey = key
|
||||
if (key !== 'recharge') {
|
||||
if (posIdx === 4 && Format.isElem(key) && key === elem) {
|
||||
if (idx === 4 && Format.isElem(key) && key === elem) {
|
||||
mainKey = 'dmg'
|
||||
}
|
||||
fixPct = Math.max(0, Math.min(1, (attrs[mainKey]?.weight || 0) / (posMaxMark['m' + posIdx])))
|
||||
fixPct = Math.max(0, Math.min(1, (attrs[mainKey]?.weight || 0) / (posMaxMark['m' + idx])))
|
||||
}
|
||||
ret += (attrs[mainKey]?.mark || 0) * (mainAttr.value || 0) / 4
|
||||
}
|
||||
@ -134,61 +139,7 @@ let ArtisMark = {
|
||||
lodash.forEach(subAttr, (ds) => {
|
||||
ret += (attrs[ds.key]?.mark || 0) * (ds.value || 0)
|
||||
})
|
||||
return ret * (1 + fixPct) / 2 / posMaxMark[posIdx] * 66
|
||||
},
|
||||
|
||||
getCritMark (charCfg, posIdx, mainAttr, subAttr, elem = '') {
|
||||
let ret = 0
|
||||
let { attrs, posMaxMark } = charCfg
|
||||
let key = mainAttr?.key
|
||||
if (!key) {
|
||||
return 0
|
||||
}
|
||||
let fixPct = 1
|
||||
posIdx = posIdx * 1
|
||||
if (posIdx >= 4) {
|
||||
let mainKey = key
|
||||
if (posIdx === 4 && Format.isElem(key) && key === elem) {
|
||||
mainKey = 'dmg'
|
||||
}
|
||||
fixPct = Math.max(0, Math.min(1, (attrs[mainKey]?.weight || 0) / (posMaxMark['m' + posIdx])))
|
||||
}
|
||||
if (key === 'cpct' || key === 'cdmg') {
|
||||
ret += 9.41
|
||||
}
|
||||
|
||||
lodash.forEach(subAttr, (ds) => {
|
||||
if (ds.key === 'cpct' || ds.key === 'cdmg') {
|
||||
let temp_s = (attrs[ds.key]?.mark || 0) * (ds.value || 0) / 85
|
||||
ret += temp_s
|
||||
}
|
||||
})
|
||||
return ret
|
||||
},
|
||||
|
||||
getValidMark (charCfg, posIdx, mainAttr, subAttr, elem = '') {
|
||||
let ret = 0
|
||||
let { attrs, posMaxMark } = charCfg
|
||||
let key = mainAttr?.key
|
||||
if (!key) {
|
||||
return 0
|
||||
}
|
||||
let fixPct = 1
|
||||
posIdx = posIdx * 1
|
||||
if (posIdx >= 4) {
|
||||
let mainKey = key
|
||||
if (posIdx === 4 && Format.isElem(key) && key === elem) {
|
||||
mainKey = 'dmg'
|
||||
}
|
||||
|
||||
|
||||
fixPct = Math.max(0, Math.min(1, (attrs[mainKey]?.weight || 0) / (posMaxMark['m' + posIdx])))
|
||||
}
|
||||
lodash.forEach(subAttr, (ds) => {
|
||||
let temp_s = (attrs[ds.key]?.mark || 0) * (ds.value || 0) / 85
|
||||
ret += temp_s
|
||||
})
|
||||
return ret
|
||||
return ret * (1 + fixPct) / 2 / posMaxMark[idx] * 66
|
||||
},
|
||||
|
||||
// 获取位置最高分
|
||||
|
@ -2,7 +2,7 @@ import lodash from 'lodash'
|
||||
|
||||
let alias = {
|
||||
三月七: '三月,相遇之缘,37,3月7',
|
||||
丹恒: '冷面,小青龙,冷面小青龙,单恒',
|
||||
丹恒: '单恒,单桓,冷面,小青龙,冷面小青龙',
|
||||
佩拉: '佩菈',
|
||||
停云: '',
|
||||
克拉拉: '',
|
||||
|
Loading…
Reference in New Issue
Block a user