106 lines
2.2 KiB
JavaScript
106 lines
2.2 KiB
JavaScript
|
import base from './base.js'
|
||
|
import MysInfo from './mys/mysInfo.js'
|
||
|
import gsCfg from './gsCfg.js'
|
||
|
import lodash from 'lodash'
|
||
|
|
||
|
export default class RoleBag extends base {
|
||
|
constructor (e) {
|
||
|
super(e)
|
||
|
this.model = 'roleBag'
|
||
|
}
|
||
|
|
||
|
static async get (e) {
|
||
|
let roleBag = new RoleBag(e)
|
||
|
return await roleBag.getData()
|
||
|
}
|
||
|
|
||
|
/** #武器 */
|
||
|
async getData (e) {
|
||
|
let res = await MysInfo.get(this.e, 'character')
|
||
|
|
||
|
if (!res || res.retcode !== 0) return false
|
||
|
|
||
|
let avatars = res.data.avatars
|
||
|
|
||
|
if (avatars.length <= 0) {
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
/** 截图数据 */
|
||
|
let data = {
|
||
|
...this.screenData,
|
||
|
saveId: this.e.uid,
|
||
|
uid: this.e.uid,
|
||
|
...this.dealData(avatars)
|
||
|
}
|
||
|
|
||
|
return data
|
||
|
}
|
||
|
|
||
|
dealData (avatars) {
|
||
|
let type = 'all'
|
||
|
if (avatars.length > 8) {
|
||
|
if (/(.*)(四星|4星)(.*)/.test(this.e.msg)) {
|
||
|
type = 4
|
||
|
}
|
||
|
if (/(.*)(五星|5星)(.*)/.test(this.e.msg)) {
|
||
|
type = 5
|
||
|
}
|
||
|
}
|
||
|
|
||
|
let costumes = gsCfg.getdefSet('role', 'other').costumes
|
||
|
let sortName = gsCfg.getdefSet('role', 'other').sortName
|
||
|
|
||
|
let list = []
|
||
|
|
||
|
for (let val of avatars) {
|
||
|
let rarity = val.rarity
|
||
|
if (val.rarity > 5) {
|
||
|
rarity = 5
|
||
|
}
|
||
|
|
||
|
if (type != 'all' && rarity != type) {
|
||
|
continue
|
||
|
}
|
||
|
|
||
|
val.sort = rarity * 100000 + val.actived_constellation_num * 10000 + val.level * 100 + (val.id - 10000000)
|
||
|
|
||
|
// 增加神里排序
|
||
|
if (val.id == 10000002) {
|
||
|
val.sort += 50
|
||
|
}
|
||
|
|
||
|
if (val.rarity > 5) {
|
||
|
val.sort = val.sort - (val.id - 10000000)
|
||
|
}
|
||
|
val.sortLevel = val.level
|
||
|
|
||
|
val.weapon.showName = sortName[val.weapon.name] ?? val.weapon.name
|
||
|
|
||
|
val.name = gsCfg.roleIdToName(val.id)
|
||
|
|
||
|
if (val.id == 10000005 || val.id == 10000007) {
|
||
|
val.sort = 0
|
||
|
}
|
||
|
|
||
|
val.costumesLogo = ''
|
||
|
if (val.costumes && val.costumes.length >= 1) {
|
||
|
for (let v of val.costumes) {
|
||
|
if (costumes.includes(v.name)) {
|
||
|
val.costumesLogo = 2
|
||
|
break
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
list.push(val)
|
||
|
}
|
||
|
|
||
|
list = lodash.chain(list).orderBy(['sortLevel'], ['desc']).orderBy(['sort'], ['desc']).value()
|
||
|
|
||
|
let num = list.length
|
||
|
|
||
|
return { list, num }
|
||
|
}
|
||
|
}
|