mirror of
https://github.com/yoimiya-kokomi/miao-plugin.git
synced 2024-11-16 04:35:42 +00:00
更新面板Model数据结构
This commit is contained in:
parent
da903e4418
commit
cde805a146
@ -3,7 +3,7 @@
|
||||
*/
|
||||
import lodash from 'lodash'
|
||||
import { Data } from '#miao'
|
||||
import { Character, ArtifactSet, ProfileData, Weapon, Player } from '#miao.models'
|
||||
import { Character, ArtifactSet, Avatar, Weapon, Player } from '#miao.models'
|
||||
|
||||
// 默认武器
|
||||
let defWeapon = {
|
||||
@ -188,7 +188,7 @@ const ProfileChange = {
|
||||
* @param charid
|
||||
* @param ds
|
||||
* @param game
|
||||
* @returns {ProfileData|boolean}
|
||||
* @returns {Avatar|boolean}
|
||||
*/
|
||||
getProfile (uid, charid, ds, game = 'gs') {
|
||||
if (!charid) {
|
||||
@ -231,7 +231,7 @@ const ProfileChange = {
|
||||
return profiles[key]?.id ? profiles[key] : source
|
||||
}
|
||||
// 初始化profile
|
||||
let ret = new ProfileData({
|
||||
let ret = new Avatar({
|
||||
uid,
|
||||
id: char.id,
|
||||
level,
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { ProfileData, Weapon } from '#miao.models'
|
||||
import { Avatar, Weapon } from '#miao.models'
|
||||
|
||||
export const ProfileWeapon = {
|
||||
async calc (profile, game = 'gs') {
|
||||
@ -10,7 +10,7 @@ export const ProfileWeapon = {
|
||||
if (affix === 5 && w.maxAffix !== 5) {
|
||||
continue
|
||||
}
|
||||
let tempProfile = new ProfileData({
|
||||
let tempProfile = new Avatar({
|
||||
...profile.getData('uid,id,level,cons,fetter,elem,promote,talent,artis'),
|
||||
dataSource: 'change'
|
||||
}, game, false)
|
||||
@ -33,4 +33,4 @@ export const ProfileWeapon = {
|
||||
return ret
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -2,12 +2,11 @@
|
||||
* 圣遗物
|
||||
* */
|
||||
import Base from './Base.js'
|
||||
import { Format } from '#miao'
|
||||
import { ArtifactSet } from './index.js'
|
||||
import { artiMap, attrMap, mainIdMap, attrIdMap } from '../resources/meta/artifact/index.js'
|
||||
import { idMap as idMapSR, artiMap as artiMapSR, metaData as metaDataSR, abbr as abbrSR } from '../resources/meta-sr/artifact/index.js'
|
||||
import lodash from 'lodash'
|
||||
import { artiMap, attrMap } from '../resources/meta/artifact/index.js'
|
||||
import { idMap as idMapSR, artiMap as artiMapSR, abbr as abbrSR } from '../resources/meta-sr/artifact/index.js'
|
||||
import ArtisMark from './artis/ArtisMark.js'
|
||||
import ArtisAttr from './artis/ArtisAttr.js'
|
||||
|
||||
class Artifact extends Base {
|
||||
static getAttrs
|
||||
@ -49,6 +48,11 @@ class Artifact extends Base {
|
||||
if (!name) {
|
||||
return false
|
||||
}
|
||||
|
||||
// 传入为artis对象
|
||||
if (name.game) {
|
||||
return Artifact.get(name.id || name.name, name.game)
|
||||
}
|
||||
if (game === 'sr') {
|
||||
name = idMapSR[name]?.name || name
|
||||
}
|
||||
@ -72,45 +76,6 @@ class Artifact extends Base {
|
||||
}
|
||||
}
|
||||
|
||||
static getMainById (id, level = 20, star = 5) {
|
||||
let key = mainIdMap[id]
|
||||
if (!key) {
|
||||
return false
|
||||
}
|
||||
let attrCfg = attrMap[Format.isElem(key) ? 'dmg' : key]
|
||||
let posEff = ['hpPlus', 'atkPlus', 'defPlus'].includes(key) ? 2 : 1
|
||||
let starEff = { 1: 0.21, 2: 0.36, 3: 0.6, 4: 0.9, 5: 1 }
|
||||
return {
|
||||
key,
|
||||
value: attrCfg.value * (1.2 + 0.34 * level) * posEff * (starEff[star || 5])
|
||||
}
|
||||
}
|
||||
|
||||
static getAttrsByIds (ids, star = 5) {
|
||||
let ret = []
|
||||
let tmp = {}
|
||||
lodash.forEach(ids, (id) => {
|
||||
let cfg = attrIdMap[id]
|
||||
if (!cfg) {
|
||||
return true
|
||||
}
|
||||
let { key, value } = cfg
|
||||
if (!tmp[key]) {
|
||||
tmp[key] = {
|
||||
key,
|
||||
upNum: 0,
|
||||
eff: 0,
|
||||
value: 0
|
||||
}
|
||||
ret.push(tmp[key])
|
||||
}
|
||||
tmp[key].value += value * (attrMap[key].format === 'pct' ? 100 : 1)
|
||||
tmp[key].upNum++
|
||||
tmp[key].eff += value / attrMap[key].value * (attrMap[key].format === 'pct' ? 100 : 1)
|
||||
})
|
||||
return ret
|
||||
}
|
||||
|
||||
getStarById (id) {
|
||||
return this.meta.ids[id] || ''
|
||||
}
|
||||
@ -129,45 +94,9 @@ class Artifact extends Base {
|
||||
}
|
||||
|
||||
// 获取圣遗物属性数据
|
||||
getAttrData (mainId, attrData, level = 1, star = 5, idx = 1) {
|
||||
let mainKey = metaDataSR.mainIdx[idx][mainId]
|
||||
let starCfg = metaDataSR.starData[star]
|
||||
let mainCfg = starCfg.main[mainKey]
|
||||
if (!mainId || !mainCfg) {
|
||||
return false
|
||||
}
|
||||
let main = {
|
||||
id: mainId,
|
||||
key: mainKey,
|
||||
value: mainCfg.base + mainCfg.step * level
|
||||
}
|
||||
let attrs = []
|
||||
lodash.forEach(attrData, (ds) => {
|
||||
let _ds = ds
|
||||
if (lodash.isString(ds)) {
|
||||
let [id, count, step] = ds.split(',')
|
||||
ds = { id, count, step }
|
||||
}
|
||||
let attrCfg = starCfg.sub[ds.id]
|
||||
if (!attrCfg) {
|
||||
console.log('not found attr', ds, _ds)
|
||||
return true
|
||||
}
|
||||
let value = attrCfg?.base * ds.count + attrCfg.step * ds.step
|
||||
attrs.push({
|
||||
...ds,
|
||||
key: attrCfg?.key,
|
||||
upNum: ds.count,
|
||||
eff: value / (attrCfg.base + attrCfg.step * 2),
|
||||
value
|
||||
})
|
||||
})
|
||||
return {
|
||||
main,
|
||||
attrs
|
||||
}
|
||||
getAttrData (arti, idx = 1, game = 'gs') {
|
||||
return ArtisAttr.getData(arti, idx, game)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export default Artifact
|
||||
|
@ -1,13 +1,15 @@
|
||||
import lodash from 'lodash'
|
||||
import AvatarData from './AvatarData.js'
|
||||
import AvatarBase from './avatar/AvatarBase.js'
|
||||
import { Data, Cfg } from '#miao'
|
||||
import { ProfileArtis, AvatarArtis, ProfileDmg } from './index.js'
|
||||
import AttrCalc from './profile/AttrCalc.js'
|
||||
import { ProfileDmg } from './index.js'
|
||||
import Attr from './attr/Attr.js'
|
||||
import CharImg from './character/CharImg.js'
|
||||
import Artis from './artis/Artis.js'
|
||||
|
||||
export default class ProfileData extends AvatarData {
|
||||
export default class Avatar extends AvatarBase {
|
||||
constructor (ds = {}, game = 'gs', calc = true) {
|
||||
super(ds, game)
|
||||
this._artis = new Artis(this.game, true)
|
||||
if (calc) {
|
||||
this.calcAttr()
|
||||
}
|
||||
@ -53,39 +55,39 @@ export default class ProfileData extends AvatarData {
|
||||
return this.hasData && !!ProfileDmg.dmgRulePath(this.name, this.game)
|
||||
}
|
||||
|
||||
get mysArtis(){
|
||||
return this._mysArtis
|
||||
}
|
||||
|
||||
get artis () {
|
||||
return this._artis
|
||||
}
|
||||
|
||||
static create (ds, game = 'gs', calc = true) {
|
||||
let profile = new ProfileData(ds, game, calc)
|
||||
let profile = new Avatar(ds, game, calc)
|
||||
if (!profile) {
|
||||
return false
|
||||
}
|
||||
return profile
|
||||
}
|
||||
|
||||
initArtis () {
|
||||
this._artis = new ProfileArtis(this.id, this.elem, this.game)
|
||||
this._mysArtis = new AvatarArtis(this.id, this.game)
|
||||
setAvatar (ds, source = '') {
|
||||
super.setAvatar(ds, source)
|
||||
if (ds.artis) {
|
||||
this._artis.setArtisData(ds.artis)
|
||||
}
|
||||
// this.calcAttr()
|
||||
}
|
||||
|
||||
calcAttr () {
|
||||
this._attr = AttrCalc.create(this)
|
||||
this._attr = Attr.create(this)
|
||||
this.attr = this._attr.calc()
|
||||
this.base = this._attr.getBase()
|
||||
}
|
||||
|
||||
setArtis (ds = false, isMysArtis = false) {
|
||||
if (isMysArtis) {
|
||||
this.mysArtis.setArtis(ds.artis?.artis || ds.artis || ds)
|
||||
} else {
|
||||
this.artis?.setProfile(this, ds.artis?.artis || ds.artis || ds)
|
||||
}
|
||||
getArtis (isMysArtis = false) {
|
||||
return isMysArtis ? this._mysArtis : this._artis
|
||||
}
|
||||
|
||||
setArtis (ds = {}, isMysArtis = false) {
|
||||
let artis = this.getArtis(isMysArtis)
|
||||
artis.setArtisData(ds)
|
||||
}
|
||||
|
||||
// 获取当前profileData的圣遗物评分,withDetail=false仅返回简略信息
|
@ -7,7 +7,7 @@
|
||||
import lodash from 'lodash'
|
||||
import Base from './Base.js'
|
||||
import { Data } from '#miao'
|
||||
import { AvatarData, ProfileRank, Character } from './index.js'
|
||||
import { Avatar, ProfileRank, Character } from './index.js'
|
||||
|
||||
import MysAvatar from './player/MysAvatar.js'
|
||||
import Profile from './player/Profile.js'
|
||||
@ -183,7 +183,7 @@ export default class Player extends Base {
|
||||
}
|
||||
}
|
||||
if (!avatars[id] && create) {
|
||||
avatars[id] = AvatarData.create({ id }, this.game)
|
||||
avatars[id] = Avatar.create({ id }, this.game)
|
||||
}
|
||||
return avatars[id] || false
|
||||
}
|
||||
@ -232,7 +232,7 @@ export default class Player extends Base {
|
||||
// 获取指定角色的面板数据
|
||||
getProfile (id) {
|
||||
let avatar = this.getAvatar(id)
|
||||
return avatar ? avatar.getProfile() : false
|
||||
return avatar
|
||||
}
|
||||
|
||||
// 获取所有面板数据
|
||||
|
@ -7,11 +7,11 @@ import { Data, Format } from '#miao'
|
||||
import ArtisMark from './ArtisMark.js'
|
||||
import { attrMap as attrMapGS } from '../../resources/meta/artifact/index.js'
|
||||
import { attrMap as attrMapSR } from '../../resources/meta-sr/artifact/index.js'
|
||||
import CharArtis from '../profile/CharArtis.js'
|
||||
import ArtisMarkCfg from './ArtisMarkCfg.js'
|
||||
import ArtisBase from './ArtisBase.js'
|
||||
|
||||
export default class Artis extends ArtisBase {
|
||||
constructor (isProfile = false, game = 'gs') {
|
||||
constructor (game = 'gs', isProfile = false) {
|
||||
super(game)
|
||||
this.isProfile = !!isProfile
|
||||
}
|
||||
@ -31,7 +31,7 @@ export default class Artis extends ArtisBase {
|
||||
getCharCfg () {
|
||||
let char = Character.get(this.charid)
|
||||
let { game, isGs } = char
|
||||
let { attrWeight, title } = CharArtis.getCharArtisCfg(char, this.profile, this)
|
||||
let { attrWeight, title } = ArtisMarkCfg.getCharArtisCfg(char, this.profile, this)
|
||||
let attrs = {}
|
||||
let baseAttr = char.baseAttr || { hp: 14000, atk: 230, def: 700 }
|
||||
let attrMap = isGs ? attrMapGS : attrMapSR
|
||||
@ -122,25 +122,28 @@ export default class Artis extends ArtisBase {
|
||||
}
|
||||
|
||||
setArtis (idx = 1, ds = {}) {
|
||||
idx = idx.toString().replace('arti', '')
|
||||
parent.setArtis(idx, ds)
|
||||
idx = idx.toString().replace('arti', '') * 1 || 1
|
||||
super.setArtis(idx, ds)
|
||||
if (!this.isProfile) {
|
||||
return
|
||||
}
|
||||
let arti = this.artis[idx]
|
||||
if (!ds.attrIds || !ds.mainId) {
|
||||
return false
|
||||
}
|
||||
arti.mainId = ds.mainId
|
||||
arti.attrIds = ds.attrIds
|
||||
arti.main = {}
|
||||
arti.attrs = {}
|
||||
let artiObj = Artifact.get(ds.id, this.game)
|
||||
let artiObj = Artifact.get(arti.id || arti.name, this.game)
|
||||
if (!artiObj) {
|
||||
return false
|
||||
}
|
||||
let attr = artiObj.getAttrData(ds.mainId, attrIds, arti.level, arti.star, idx)
|
||||
let attr = artiObj.getAttrData(arti, idx, this.game)
|
||||
if (!attr) {
|
||||
console.log('attr id error', ds.main, ds.mainId, idx, arti.level, arti.star)
|
||||
return false
|
||||
}
|
||||
arti.main = attr.main
|
||||
arti.attrs = attr.attrs
|
||||
}
|
||||
|
||||
// 获取保存数据
|
||||
@ -155,7 +158,7 @@ export default class Artis extends ArtisBase {
|
||||
if (!this.isProfile) {
|
||||
return true
|
||||
}
|
||||
tmp.mainId = ds.main?.id
|
||||
tmp.mainId = ds.mainId || ds.main?.id
|
||||
if (this.isSr) {
|
||||
tmp.attrIds = []
|
||||
lodash.forEach(ds.attrs, (as) => {
|
||||
|
101
models/artis/ArtisAttr.js
Normal file
101
models/artis/ArtisAttr.js
Normal file
@ -0,0 +1,101 @@
|
||||
import { Format } from '#miao'
|
||||
import lodash from 'lodash'
|
||||
import { attrIdMap, attrMap, mainIdMap } from '../../resources/meta/artifact/index.js'
|
||||
import { metaData as metaDataSR } from '../../resources/meta-sr/artifact/index.js'
|
||||
|
||||
let AttrGS = {
|
||||
getMain (id, level, star) {
|
||||
let key = mainIdMap[id]
|
||||
if (!key) {
|
||||
return false
|
||||
}
|
||||
let attrCfg = attrMap[Format.isElem(key) ? 'dmg' : key]
|
||||
let posEff = ['hpPlus', 'atkPlus', 'defPlus'].includes(key) ? 2 : 1
|
||||
let starEff = { 1: 0.21, 2: 0.36, 3: 0.6, 4: 0.9, 5: 1 }
|
||||
return {
|
||||
id,
|
||||
key,
|
||||
value: attrCfg.value * (1.2 + 0.34 * level) * posEff * (starEff[star || 5])
|
||||
}
|
||||
},
|
||||
|
||||
getAttr (ids, star = 5) {
|
||||
let ret = []
|
||||
let tmp = {}
|
||||
lodash.forEach(ids, (id) => {
|
||||
let cfg = attrIdMap[id]
|
||||
if (!cfg) {
|
||||
return true
|
||||
}
|
||||
let { key, value } = cfg
|
||||
if (!tmp[key]) {
|
||||
tmp[key] = {
|
||||
key,
|
||||
upNum: 0,
|
||||
eff: 0,
|
||||
value: 0
|
||||
}
|
||||
ret.push(tmp[key])
|
||||
}
|
||||
tmp[key].value += value * (attrMap[key].format === 'pct' ? 100 : 1)
|
||||
tmp[key].upNum++
|
||||
tmp[key].eff += value / attrMap[key].value * (attrMap[key].format === 'pct' ? 100 : 1)
|
||||
})
|
||||
return ret
|
||||
},
|
||||
|
||||
getData (mainId, attrIds, level, star) {
|
||||
return {
|
||||
main: AttrGS.getMain(mainId, level, star),
|
||||
attrs: AttrGS.getAttr(attrIds, star)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
let AttrSR = {
|
||||
getData (mainId, attrIds, level, star, idx = 1) {
|
||||
let mainKey = metaDataSR.mainIdx[idx][mainId]
|
||||
let starCfg = metaDataSR.starData[star]
|
||||
let mainCfg = starCfg.main[mainKey]
|
||||
if (!mainId || !mainCfg) {
|
||||
return false
|
||||
}
|
||||
let main = {
|
||||
id: mainId,
|
||||
key: mainKey,
|
||||
value: mainCfg.base + mainCfg.step * level
|
||||
}
|
||||
let attrs = []
|
||||
lodash.forEach(attrIds, (ds) => {
|
||||
let _ds = ds
|
||||
if (lodash.isString(ds)) {
|
||||
let [id, count, step] = ds.split(',')
|
||||
ds = { id, count, step }
|
||||
}
|
||||
let attrCfg = starCfg.sub[ds.id]
|
||||
if (!attrCfg) {
|
||||
console.log('not found attr', ds, _ds)
|
||||
return true
|
||||
}
|
||||
let value = attrCfg?.base * ds.count + attrCfg.step * ds.step
|
||||
attrs.push({
|
||||
...ds,
|
||||
key: attrCfg?.key,
|
||||
upNum: ds.count,
|
||||
eff: value / (attrCfg.base + attrCfg.step * 2),
|
||||
value
|
||||
})
|
||||
})
|
||||
return {
|
||||
main,
|
||||
attrs
|
||||
}
|
||||
}
|
||||
}
|
||||
export default {
|
||||
getData (arti, idx = 1, game = 'gs') {
|
||||
let tmp = game === 'gs' ? AttrGS : AttrSR
|
||||
return tmp.getData(arti.mainId, arti.attrIds, arti.level, arti.star, idx)
|
||||
}
|
||||
}
|
@ -2,13 +2,13 @@
|
||||
* 面板属性计算
|
||||
* @type {{}}
|
||||
*/
|
||||
|
||||
import { Weapon, ProfileAttr, ArtifactSet } from '../index.js'
|
||||
import { Format } from '#miao'
|
||||
import { Weapon, ArtifactSet } from '#miao.models'
|
||||
import AttrData from './AttrData.js'
|
||||
import { weaponBuffs } from '../../resources/meta/weapon/index.js'
|
||||
import lodash from 'lodash'
|
||||
|
||||
class AttrCalc {
|
||||
class Attr {
|
||||
constructor (profile) {
|
||||
this.profile = profile
|
||||
this.char = profile.char
|
||||
@ -26,10 +26,10 @@ class AttrCalc {
|
||||
/**
|
||||
* 静态调用入口
|
||||
* @param profile
|
||||
* @returns {AttrCalc}
|
||||
* @returns {Attr}
|
||||
*/
|
||||
static create (profile) {
|
||||
return new AttrCalc(profile)
|
||||
return new Attr(profile)
|
||||
}
|
||||
|
||||
// 只有原神才需要
|
||||
@ -56,7 +56,7 @@ class AttrCalc {
|
||||
* @returns {{}}
|
||||
*/
|
||||
calc () {
|
||||
this.attr = ProfileAttr.create(this.char, {})
|
||||
this.attr = AttrData.create(this.char, {})
|
||||
if (this.isGs) {
|
||||
this.addAttr('recharge', 100, true)
|
||||
this.addAttr('cpct', 5, true)
|
||||
@ -266,4 +266,4 @@ class AttrCalc {
|
||||
}
|
||||
}
|
||||
|
||||
export default AttrCalc
|
||||
export default Attr
|
@ -1,5 +1,5 @@
|
||||
import lodash from 'lodash'
|
||||
import Base from './Base.js'
|
||||
import Base from '../Base.js'
|
||||
import { Format } from '#miao'
|
||||
|
||||
const baseAttr = {
|
||||
@ -11,7 +11,7 @@ let attrReg = {
|
||||
sr: new RegExp(`^(${baseAttr.sr.join('|')})(Base|Plus|Pct|Inc)$`)
|
||||
}
|
||||
|
||||
class ProfileAttr extends Base {
|
||||
class AttrData extends Base {
|
||||
constructor (char, data = null) {
|
||||
super()
|
||||
this.char = char
|
||||
@ -20,7 +20,7 @@ class ProfileAttr extends Base {
|
||||
}
|
||||
|
||||
static create (char, data = null) {
|
||||
return new ProfileAttr(char, data)
|
||||
return new AttrData(char, data)
|
||||
}
|
||||
|
||||
init (data) {
|
||||
@ -147,4 +147,4 @@ class ProfileAttr extends Base {
|
||||
}
|
||||
}
|
||||
|
||||
export default ProfileAttr
|
||||
export default AttrData
|
@ -1,14 +1,15 @@
|
||||
import lodash from 'lodash'
|
||||
import Base from './Base.js'
|
||||
import Base from '../Base.js'
|
||||
import moment from 'moment'
|
||||
import { Character, AvatarArtis, ProfileData, Weapon } from './index.js'
|
||||
import { Character, Avatar, Weapon } from '#miao.models'
|
||||
import { Data, Format } from '#miao'
|
||||
import AttrCalc from './profile/AttrCalc.js'
|
||||
import Profile from './player/Profile.js'
|
||||
import Attr from '../attr/Attr.js'
|
||||
import Profile from '../player/Profile.js'
|
||||
import Artis from '../artis/Artis.js'
|
||||
|
||||
const charKey = 'name,abbr,sName,star,imgs,face,side,gacha,weaponTypeName'.split(',')
|
||||
|
||||
export default class AvatarData extends Base {
|
||||
export default class AvatarBase extends Base {
|
||||
constructor (ds = {}, game = 'gs') {
|
||||
super()
|
||||
let char = Character.get({ id: ds.id, elem: ds.elem })
|
||||
@ -18,7 +19,7 @@ export default class AvatarData extends Base {
|
||||
this.id = char.id
|
||||
this.char = char
|
||||
this.game = char.game || game
|
||||
this._mysArtis = new AvatarArtis(this.id, this.game)
|
||||
this._mysArtis = new Artis(this.game)
|
||||
this.setAvatar(ds)
|
||||
}
|
||||
|
||||
@ -58,6 +59,14 @@ export default class AvatarData extends Base {
|
||||
return minTalent >= maxLv
|
||||
}
|
||||
|
||||
get artis () {
|
||||
return this._mysArtis
|
||||
}
|
||||
|
||||
get mysArtis () {
|
||||
return this._mysArtis
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取圣遗物套装属性
|
||||
* @returns {boolean|*|{imgs: *[], names: *[], sets: {}, abbrs: *[], sName: string, name: (string|*)}|{}}
|
||||
@ -91,16 +100,8 @@ export default class AvatarData extends Base {
|
||||
return ''
|
||||
}
|
||||
|
||||
get mysArtis () {
|
||||
return this._mysArtis
|
||||
}
|
||||
|
||||
get artis () {
|
||||
return this._mysArtis
|
||||
}
|
||||
|
||||
static create (ds, game = 'gs') {
|
||||
let avatar = new AvatarData(ds, game)
|
||||
let avatar = new AvatarBase(ds, game)
|
||||
if (!avatar) {
|
||||
return false
|
||||
}
|
||||
@ -118,7 +119,7 @@ export default class AvatarData extends Base {
|
||||
this.setBasic(ds, source)
|
||||
ds.weapon && this.setWeapon(ds.weapon)
|
||||
ds.talent && this.setTalent(ds.talent, 'original', source)
|
||||
this.setArtis(ds)
|
||||
this._mysArtis.setArtisData(ds.mysArtis || ds.artis)
|
||||
delete this._now
|
||||
}
|
||||
|
||||
@ -134,7 +135,7 @@ export default class AvatarData extends Base {
|
||||
this.fetter = ds.fetter || this.fetter || 0
|
||||
this._costume = ds.costume || this._costume || 0
|
||||
this.elem = ds.elem || this.elem || this.char.elem || ''
|
||||
this.promote = lodash.isUndefined(ds.promote) ? (this.promote || AttrCalc.calcPromote(this.level)) : (ds.promote || 0)
|
||||
this.promote = lodash.isUndefined(ds.promote) ? (this.promote || Attr.calcPromote(this.level)) : (ds.promote || 0)
|
||||
this.trees = this.trees || []
|
||||
this._source = ds._source || this._source || '' // 数据源
|
||||
this._time = ds._time || this._time || now // 面板最后更新时间
|
||||
@ -191,7 +192,7 @@ export default class AvatarData extends Base {
|
||||
id: ds.id || w.id,
|
||||
name: ds.name || w.name,
|
||||
level: ds.level || ds.lv || 1,
|
||||
promote: lodash.isUndefined(ds.promote) ? AttrCalc.calcPromote(ds.level || ds.lv || 1) : (ds.promote || 0),
|
||||
promote: lodash.isUndefined(ds.promote) ? Attr.calcPromote(ds.level || ds.lv || 1) : (ds.promote || 0),
|
||||
affix: ds.affix,
|
||||
...w.getData('star,abbr,type,img')
|
||||
}
|
||||
@ -246,15 +247,15 @@ export default class AvatarData extends Base {
|
||||
}
|
||||
}
|
||||
|
||||
setArtis (ds, source) {
|
||||
this.mysArtis.setArtisData(ds.mysArtis || ds.artis, source)
|
||||
setArtis (ds) {
|
||||
this.mysArtis.setArtisData(ds.mysArtis || ds.artis)
|
||||
}
|
||||
|
||||
getProfile () {
|
||||
if (!this.isProfile) {
|
||||
return false
|
||||
}
|
||||
return ProfileData.create(this, this.game)
|
||||
return Avatar.create(this, this.game)
|
||||
}
|
||||
|
||||
// 判断当前profileData是否具备有效圣遗物信息
|
@ -2,13 +2,11 @@ import Base from './Base.js'
|
||||
import Character from './Character.js'
|
||||
import Artifact from './Artifact.js'
|
||||
import ArtifactSet from './ArtifactSet.js'
|
||||
import AvatarData from './AvatarData.js'
|
||||
import Abyss from './Abyss.js'
|
||||
import Player from './Player.js'
|
||||
import ProfileServ from './ProfileServ.js'
|
||||
import ProfileReq from './ProfileReq.js'
|
||||
import ProfileData from './ProfileData.js'
|
||||
import ProfileAttr from './ProfileAttr.js'
|
||||
import Avatar from './Avatar.js'
|
||||
import ProfileDmg from './ProfileDmg.js'
|
||||
import ProfileRank from './ProfileRank.js'
|
||||
import Material from './Material.js'
|
||||
@ -16,17 +14,18 @@ import Weapon from './Weapon.js'
|
||||
import User from './User.js'
|
||||
import MysApi from './MysApi.js'
|
||||
|
||||
export const ProfileData = Avatar
|
||||
export const AvatarData = ProfileData
|
||||
|
||||
export {
|
||||
Base,
|
||||
Abyss,
|
||||
Character,
|
||||
Artifact,
|
||||
ArtifactSet,
|
||||
AvatarData,
|
||||
ProfileServ,
|
||||
ProfileReq,
|
||||
ProfileData,
|
||||
ProfileAttr,
|
||||
Avatar,
|
||||
ProfileDmg,
|
||||
ProfileRank,
|
||||
Material,
|
||||
|
@ -1,32 +0,0 @@
|
||||
/**
|
||||
* 旧面板数据迁移
|
||||
* 去除旧格式,控制逻辑复杂度
|
||||
*/
|
||||
import fs from 'node:fs'
|
||||
import lodash from 'lodash'
|
||||
import { Data } from '#miao'
|
||||
|
||||
const DataTrans = {
|
||||
trans () {
|
||||
const srcPath = './data/UserData'
|
||||
let uids = fs.readdirSync(srcPath)
|
||||
uids = uids.filter((uid) => /\.json/i.test(uid))
|
||||
lodash.forEach(uids, (uid) => {
|
||||
let data = Data.readJSON(`/data/UserData/${uid}`)
|
||||
DataTrans.doTrans(data)
|
||||
})
|
||||
},
|
||||
doTrans (data) {
|
||||
lodash.forEach(data.avatars, (ds, id) => {
|
||||
data.avatars[id] = DataTrans.getAvatar(ds)
|
||||
})
|
||||
},
|
||||
getAvatar (data) {
|
||||
let artisSet = {}
|
||||
lodash.forEach(data.artis, (ds, idx) => {
|
||||
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
export default DataTrans
|
@ -2,7 +2,7 @@
|
||||
* 伤害计算 - Buff计算
|
||||
* */
|
||||
import lodash from 'lodash'
|
||||
import { ProfileArtis, ArtifactSet, Weapon } from '../index.js'
|
||||
import { ArtifactSet, Weapon } from '../index.js'
|
||||
|
||||
/*
|
||||
理论参考:www.miyoushe.com/ys/article/32359316
|
||||
|
@ -4,7 +4,7 @@ import fs from 'node:fs'
|
||||
|
||||
let Trans = {
|
||||
init () {
|
||||
Data.createDir('temp/UserData_BAK')
|
||||
Data.createDir('temp/UserDataBAK')
|
||||
let uids = fs.readdirSync('./data/UserData')
|
||||
uids = uids.filter((uid) => /\.(json)/i.test(uid))
|
||||
let success = 0
|
||||
@ -27,7 +27,7 @@ let Trans = {
|
||||
|
||||
try {
|
||||
let src = `./data/UserData/${uid}.json`
|
||||
let dst = `./temp/UserData_BAK/${uid}.json`
|
||||
let dst = `./temp/UserDataBAK/${uid}.json`
|
||||
fs.existsSync(dst) && fs.unlinkSync(dst)
|
||||
fs.copyFileSync(src, dst)
|
||||
fs.unlinkSync(src)
|
||||
|
Loading…
Reference in New Issue
Block a user