变更部分星铁面板素材图
@ -131,13 +131,15 @@ let ProfileDetail = {
|
|||||||
let a = profile.attr
|
let a = profile.attr
|
||||||
let base = profile.base
|
let base = profile.base
|
||||||
let attr = {}
|
let attr = {}
|
||||||
lodash.forEach(['hp', 'def', 'atk', 'mastery'], (key) => {
|
let game = char.game
|
||||||
|
|
||||||
|
lodash.forEach((game === 'gs' ? 'hp,def,atk,mastery' : 'hp,def,atk,speed').split(','), (key) => {
|
||||||
let fn = (n) => Format.comma(n, key === 'hp' ? 0 : 1)
|
let fn = (n) => Format.comma(n, key === 'hp' ? 0 : 1)
|
||||||
attr[key] = fn(a[key])
|
attr[key] = fn(a[key])
|
||||||
attr[`${key}Base`] = fn(base[key])
|
attr[`${key}Base`] = fn(base[key])
|
||||||
attr[`${key}Plus`] = fn(a[key] - base[key])
|
attr[`${key}Plus`] = fn(a[key] - base[key])
|
||||||
})
|
})
|
||||||
lodash.forEach(['cpct', 'cdmg', 'recharge', 'dmg'], (key) => {
|
lodash.forEach((game === 'gs' ? 'cpct,cdmg,recharge,dmg' : 'cpct,cdmg,recharge,dmg,effPct,stance').split(','), (key) => {
|
||||||
let fn = Format.pct
|
let fn = Format.pct
|
||||||
let key2 = key
|
let key2 = key
|
||||||
if (key === 'dmg' && a.phy > a.dmg) {
|
if (key === 'dmg' && a.phy > a.dmg) {
|
||||||
@ -148,7 +150,7 @@ let ProfileDetail = {
|
|||||||
attr[`${key}Plus`] = fn(a[key2] - base[key2])
|
attr[`${key}Plus`] = fn(a[key2] - base[key2])
|
||||||
})
|
})
|
||||||
|
|
||||||
let weapon = Weapon.get(profile.weapon.name, char.game)
|
let weapon = Weapon.get(profile.weapon.name, game)
|
||||||
let w = profile.weapon
|
let w = profile.weapon
|
||||||
let wCfg = {}
|
let wCfg = {}
|
||||||
if (mode === 'weapon') {
|
if (mode === 'weapon') {
|
||||||
@ -167,10 +169,11 @@ let ProfileDetail = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let artisDetail = profile.getArtisMark()
|
let artisDetail = profile.getArtisMark()
|
||||||
let artisKeyTitle = ProfileArtis.getArtisKeyTitle()
|
let artisKeyTitle = ProfileArtis.getArtisKeyTitle(game)
|
||||||
let renderData = {
|
let renderData = {
|
||||||
save_id: uid,
|
save_id: uid,
|
||||||
uid,
|
uid,
|
||||||
|
game,
|
||||||
data: profile.getData('name,abbr,cons,level,weapon,talent,dataSource,updateTime,imgs,costumeSplash'),
|
data: profile.getData('name,abbr,cons,level,weapon,talent,dataSource,updateTime,imgs,costumeSplash'),
|
||||||
attr,
|
attr,
|
||||||
elem: char.elem,
|
elem: char.elem,
|
||||||
|
@ -12,20 +12,32 @@ const elemAlias = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const elemAliasSR = {
|
const elemAliasSR = {
|
||||||
|
fire: '火',
|
||||||
|
ice: '冰',
|
||||||
|
wind: '风',
|
||||||
|
elec: '雷',
|
||||||
|
phy: '物理',
|
||||||
|
quantum: '量子',
|
||||||
|
imaginary: '虚数'
|
||||||
}
|
}
|
||||||
|
|
||||||
// 元素属性映射, 名称=>elem
|
// 元素属性映射, 名称=>elem
|
||||||
let elemMap = {}
|
let elemMap = {}
|
||||||
|
let elemMapSR = {}
|
||||||
|
|
||||||
// 标准元素名
|
// 标准元素名
|
||||||
let elemTitleMap = {}
|
let elemTitleMap = {}
|
||||||
|
let elemTitleMapSR = elemAliasSR
|
||||||
|
|
||||||
lodash.forEach(elemAlias, (txt, key) => {
|
lodash.forEach(elemAlias, (txt, key) => {
|
||||||
elemMap[key] = key
|
elemMap[key] = key
|
||||||
elemTitleMap[key] = txt[0]
|
elemTitleMap[key] = txt[0]
|
||||||
Data.eachStr(txt, (t) => (elemMap[t] = key))
|
Data.eachStr(txt, (t) => (elemMap[t] = key))
|
||||||
})
|
})
|
||||||
|
lodash.forEach(elemAliasSR, (txt, key) => {
|
||||||
|
elemMapSR[key] = key
|
||||||
|
elemMapSR[txt] = key
|
||||||
|
})
|
||||||
|
|
||||||
const Elem = {
|
const Elem = {
|
||||||
// 根据名称获取元素key
|
// 根据名称获取元素key
|
||||||
@ -56,8 +68,8 @@ const Elem = {
|
|||||||
return ''
|
return ''
|
||||||
},
|
},
|
||||||
|
|
||||||
eachElem (fn) {
|
eachElem (fn, game = 'gs') {
|
||||||
lodash.forEach(elemTitleMap, (title, key) => {
|
lodash.forEach(game === 'gs' ? elemTitleMap : elemTitleMapSR, (title, key) => {
|
||||||
fn(key, title)
|
fn(key, title)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -37,7 +37,7 @@ class Artifact extends Base {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get img () {
|
get img () {
|
||||||
return this.isGs ? `meta/artifact/imgs/${this.setName}/${this.idx}.webp` : `meta-sr/artifact/imgs/${this.setName}/arti-${this.idx}.webp`
|
return this.isGs ? `meta/artifact/imgs/${this.setName}/${this.idx}.webp` : `meta-sr/artifact/${this.setName}/arti-${this.idx}.webp`
|
||||||
}
|
}
|
||||||
|
|
||||||
static get (name, game = 'gs') {
|
static get (name, game = 'gs') {
|
||||||
@ -110,15 +110,17 @@ class Artifact extends Base {
|
|||||||
return this.meta.ids[id] || ''
|
return this.meta.ids[id] || ''
|
||||||
}
|
}
|
||||||
|
|
||||||
getAttrData (mainId, attrData, level = 1, star = 5) {
|
getAttrData (mainId, attrData, level = 1, star = 5, idx = 1) {
|
||||||
|
|
||||||
|
let mainKey = metaDataSR.mainIdx[idx][mainId]
|
||||||
let starCfg = metaDataSR.starData[star]
|
let starCfg = metaDataSR.starData[star]
|
||||||
let mainCfg = starCfg.main[mainId]
|
let mainCfg = starCfg.main[mainKey]
|
||||||
if (!mainId || !mainCfg) {
|
if (!mainId || !mainCfg) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
let main = {
|
let main = {
|
||||||
id: mainId,
|
id: mainId,
|
||||||
key: mainCfg.key,
|
key: mainKey,
|
||||||
value: mainCfg.base + mainCfg.step * level
|
value: mainCfg.base + mainCfg.step * level
|
||||||
}
|
}
|
||||||
let attrs = []
|
let attrs = []
|
||||||
|
@ -46,8 +46,8 @@ export default class AvatarArtis extends Base {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
static getArtisKeyTitle () {
|
static getArtisKeyTitle (game = 'gs') {
|
||||||
return ArtisMark.getKeyTitleMap()
|
return ArtisMark.getKeyTitleMap(game)
|
||||||
}
|
}
|
||||||
|
|
||||||
setArtisData (ds = {}, isProfile = false) {
|
setArtisData (ds = {}, isProfile = false) {
|
||||||
@ -77,7 +77,7 @@ export default class AvatarArtis extends Base {
|
|||||||
arti.star = artiObj.getStarById(ds.id) || arti.star || 5
|
arti.star = artiObj.getStarById(ds.id) || arti.star || 5
|
||||||
|
|
||||||
if (ds.mainId && ds.attrs) {
|
if (ds.mainId && ds.attrs) {
|
||||||
let attr = artiObj.getAttrData(ds.mainId, ds.attrs, arti.level, arti.star)
|
let attr = artiObj.getAttrData(ds.mainId, ds.attrs, arti.level, arti.star, idx)
|
||||||
if (attr) {
|
if (attr) {
|
||||||
arti.mainId = ds.mainId
|
arti.mainId = ds.mainId
|
||||||
arti.main = attr.main || arti.main || {}
|
arti.main = attr.main || arti.main || {}
|
||||||
@ -129,7 +129,6 @@ export default class AvatarArtis extends Base {
|
|||||||
|
|
||||||
forEach (fn) {
|
forEach (fn) {
|
||||||
lodash.forEach(this.artis, (ds, idx) => {
|
lodash.forEach(this.artis, (ds, idx) => {
|
||||||
console.log(ds, this.game, ds.mainId, ds.main)
|
|
||||||
if (ds.name) {
|
if (ds.name) {
|
||||||
fn(ds, idx)
|
fn(ds, idx)
|
||||||
}
|
}
|
||||||
|
@ -300,12 +300,13 @@ class Character extends Base {
|
|||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
const path = this.isSr ? 'resources/meta-sr/character' : 'resources/meta/character'
|
const path = this.isSr ? 'resources/meta-sr/character' : 'resources/meta/character'
|
||||||
|
const file = this.isSr ? 'data' : 'detail'
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (this.isTraveler) {
|
if (this.isTraveler) {
|
||||||
this._detail = Data.readJSON(`${path}/旅行者/${this.elem}/detail.json`, 'miao')
|
this._detail = Data.readJSON(`${path}/旅行者/${this.elem}/${file}.json`, 'miao')
|
||||||
} else {
|
} else {
|
||||||
this._detail = Data.readJSON(`${path}/${this.name}/detail.json`, 'miao')
|
this._detail = Data.readJSON(`${path}/${this.name}/${file}.json`, 'miao')
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e)
|
console.log(e)
|
||||||
@ -327,6 +328,31 @@ class Character extends Base {
|
|||||||
}
|
}
|
||||||
return this._artisRule
|
return this._artisRule
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取等级属性
|
||||||
|
* @param level
|
||||||
|
* @param promote
|
||||||
|
* @returns {{}|boolean}
|
||||||
|
*/
|
||||||
|
getLvAttr (level, promote) {
|
||||||
|
let metaAttr = this.detail?.attr
|
||||||
|
if (!metaAttr) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if (this.isSr) {
|
||||||
|
let lvAttr = metaAttr[promote]
|
||||||
|
let ret = {}
|
||||||
|
lodash.forEach(lvAttr.attrs, (v, k) => {
|
||||||
|
ret[k] = v * 1
|
||||||
|
})
|
||||||
|
lodash.forEach(lvAttr.grow, (v, k) => {
|
||||||
|
ret[k] = ret[k] * 1 + v * (level - 1)
|
||||||
|
})
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Character.CharId = CharId
|
Character.CharId = CharId
|
||||||
|
@ -71,11 +71,11 @@ export default class ProfileArtis extends AvatarArtis {
|
|||||||
let totalVaild = 0
|
let totalVaild = 0
|
||||||
this.forEach((arti, idx) => {
|
this.forEach((arti, idx) => {
|
||||||
let mark = ArtisMark.getMark(charCfg, idx, arti.main, arti.attrs, this.elem)
|
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 crit = ArtisMark.getCritMark(charCfg, idx, arti.main, arti.attrs, this.elem)
|
||||||
let vaild = ArtisMark.getValidMark(charCfg, idx, arti.main, arti.attrs, this.elem)
|
// let vaild = ArtisMark.getValidMark(charCfg, idx, arti.main, arti.attrs, this.elem)
|
||||||
totalMark += mark
|
totalMark += mark
|
||||||
totalCrit += crit
|
// totalCrit += crit
|
||||||
totalVaild += vaild
|
// totalVaild += vaild
|
||||||
setCount[arti.set] = (setCount[arti.set] || 0) + 1
|
setCount[arti.set] = (setCount[arti.set] || 0) + 1
|
||||||
if (!withDetail) {
|
if (!withDetail) {
|
||||||
artis[idx] = {
|
artis[idx] = {
|
||||||
@ -84,8 +84,9 @@ export default class ProfileArtis extends AvatarArtis {
|
|||||||
markClass: ArtisMark.getMarkClass(mark)
|
markClass: ArtisMark.getMarkClass(mark)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
let artifact = Artifact.get(arti.name)
|
let artifact = Artifact.get(arti.name, this.game)
|
||||||
console.log(arti.main, arti.mainId, arti)
|
// console.log('artifact', artifact, arti)
|
||||||
|
// console.log(`arti idx ${idx} ${artifact.name}\n\n\n`)
|
||||||
artis[idx] = {
|
artis[idx] = {
|
||||||
name: artifact.name,
|
name: artifact.name,
|
||||||
set: artifact.setName,
|
set: artifact.setName,
|
||||||
@ -115,10 +116,10 @@ export default class ProfileArtis extends AvatarArtis {
|
|||||||
let ret = {
|
let ret = {
|
||||||
mark: Format.comma(totalMark, 1),
|
mark: Format.comma(totalMark, 1),
|
||||||
_mark: totalMark,
|
_mark: totalMark,
|
||||||
crit: Format.comma(totalCrit, 1),
|
/* crit: Format.comma(totalCrit, 1),
|
||||||
_crit: totalCrit,
|
_crit: totalCrit,
|
||||||
valid: Format.comma(totalVaild, 1),
|
valid: Format.comma(totalVaild, 1),
|
||||||
_valid: totalVaild,
|
_valid: totalVaild, */
|
||||||
markClass: ArtisMark.getMarkClass(totalMark / 5),
|
markClass: ArtisMark.getMarkClass(totalMark / 5),
|
||||||
artis,
|
artis,
|
||||||
sets,
|
sets,
|
||||||
|
@ -88,7 +88,6 @@ export default class ProfileData extends AvatarData {
|
|||||||
// 获取当前profileData的圣遗物评分,withDetail=false仅返回简略信息
|
// 获取当前profileData的圣遗物评分,withDetail=false仅返回简略信息
|
||||||
getArtisMark (withDetail = true) {
|
getArtisMark (withDetail = true) {
|
||||||
if (this.hasData) {
|
if (this.hasData) {
|
||||||
console.log(this.game)
|
|
||||||
return this.artis.getMarkDetail(withDetail)
|
return this.artis.getMarkDetail(withDetail)
|
||||||
}
|
}
|
||||||
return {}
|
return {}
|
||||||
|
@ -34,7 +34,7 @@ class Weapon extends Base {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get img () {
|
get img () {
|
||||||
return `meta/${this.isGs ? 'meta' : 'meta-sr'}/${this.type}/${this.name}/icon.webp`
|
return `${this.isGs ? 'meta' : 'meta-sr'}/weapon/${this.type}/${this.name}/icon.webp`
|
||||||
}
|
}
|
||||||
|
|
||||||
get imgs () {
|
get imgs () {
|
||||||
@ -46,9 +46,9 @@ class Weapon extends Base {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return {
|
return {
|
||||||
icon: `meta/weapon-sr/${this.type}/${this.name}/icon.webp`,
|
icon: `meta-sr/weapon/${this.type}/${this.name}/icon.webp`,
|
||||||
icon2: `meta/weapon-sr/${this.type}/${this.name}/icon-s.webp`,
|
icon2: `meta-sr/weapon/${this.type}/${this.name}/icon-s.webp`,
|
||||||
gacha: `meta/weapon-sr/${this.type}/${this.name}/splash.webp`
|
gacha: `meta-sr/weapon/${this.type}/${this.name}/splash.webp`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -108,9 +108,10 @@ class Weapon extends Base {
|
|||||||
if (this._detail) {
|
if (this._detail) {
|
||||||
return this._detail
|
return this._detail
|
||||||
}
|
}
|
||||||
const path = this.isGs ? 'resources/meta/weapon' : 'resources/meta/weapon-sr'
|
const path = this.isGs ? 'resources/meta/weapon' : 'resources/meta-sr/weapon'
|
||||||
try {
|
try {
|
||||||
this._detail = Data.readJSON(`${path}/${this.type}/${this.name}/data.json`, 'miao')
|
this._detail = Data.readJSON(`${path}/${this.type}/${this.name}/data.json`, 'miao')
|
||||||
|
console.log(`${path}/${this.type}/${this.name}/data.json`)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e)
|
console.log(e)
|
||||||
}
|
}
|
||||||
@ -118,6 +119,22 @@ class Weapon extends Base {
|
|||||||
}
|
}
|
||||||
|
|
||||||
calcAttr (level, promote = -1) {
|
calcAttr (level, promote = -1) {
|
||||||
|
let metaAttr = this.detail?.attr
|
||||||
|
if (!metaAttr) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if (this.isSr) {
|
||||||
|
let lvAttr = metaAttr[promote]
|
||||||
|
let ret = {}
|
||||||
|
lodash.forEach(lvAttr.attrs, (v, k) => {
|
||||||
|
ret[k] = v * 1
|
||||||
|
})
|
||||||
|
lodash.forEach(this.detail?.growAttr, (v, k) => {
|
||||||
|
ret[k] = ret[k] * 1 + v * (level - 1)
|
||||||
|
})
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
let lvLeft = 1
|
let lvLeft = 1
|
||||||
let lvRight = 20
|
let lvRight = 20
|
||||||
let lvStep = [1, 20, 40, 50, 60, 70, 80, 90]
|
let lvStep = [1, 20, 40, 50, 60, 70, 80, 90]
|
||||||
|
@ -8,6 +8,8 @@ import mggApi from './MggApi.js'
|
|||||||
import hutaoApi from './HutaoApi.js'
|
import hutaoApi from './HutaoApi.js'
|
||||||
import luluApi from './LuluApi.js'
|
import luluApi from './LuluApi.js'
|
||||||
|
|
||||||
|
import lodash from 'lodash'
|
||||||
|
|
||||||
let { diyCfg } = await Data.importCfg('profile')
|
let { diyCfg } = await Data.importCfg('profile')
|
||||||
|
|
||||||
const Profile = {
|
const Profile = {
|
||||||
@ -95,9 +97,7 @@ const Profile = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
isProfile (avatar) {
|
isProfile (avatar) {
|
||||||
console.log('is Sr', avatar.isSr, avatar._source)
|
|
||||||
if (avatar.isSr) {
|
if (avatar.isSr) {
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
// 检查数据源
|
// 检查数据源
|
||||||
@ -106,7 +106,7 @@ const Profile = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 检查武器及天赋
|
// 检查武器及天赋
|
||||||
if (!avatar.weapon || !avatar.talent) {
|
if (!avatar.weapon || lodash.isUndefined(avatar.weapon.promote) || !avatar.talent) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
// 检查圣遗物词条是否完备
|
// 检查圣遗物词条是否完备
|
||||||
|
@ -7,19 +7,19 @@ import {
|
|||||||
|
|
||||||
let ArtisMark = {
|
let ArtisMark = {
|
||||||
// 根据Key获取标题
|
// 根据Key获取标题
|
||||||
getKeyByTitle (title, dmg = false, game = 'gs') {
|
getKeyByTitle (title, game = 'gs') {
|
||||||
if (/元素伤害加成/.test(title) || Format.isElem(title)) {
|
if (/元素伤害加成/.test(title) || Format.isElem(title)) {
|
||||||
let elem = Format.matchElem(title)
|
let elem = Format.matchElem(title)
|
||||||
return dmg ? 'dmg' : elem
|
return elem
|
||||||
} else if (title === '物理伤害加成') {
|
} else if (title === '物理伤害加成') {
|
||||||
return 'phy'
|
return 'phy'
|
||||||
}
|
}
|
||||||
return (game === 'gs' ? attrNameMap : attrNameMapSR)[title]
|
return (game === 'gs' ? attrNameMap : attrMap)[title]
|
||||||
},
|
},
|
||||||
|
|
||||||
getKeyTitleMap (game = 'gs') {
|
getKeyTitleMap (game = 'gs') {
|
||||||
let ret = {}
|
let ret = {}
|
||||||
lodash.forEach(attrMap, (ds, key) => {
|
lodash.forEach(game === 'gs' ? attrMap : attrMapSR, (ds, key) => {
|
||||||
ret[key] = ds.title
|
ret[key] = ds.title
|
||||||
})
|
})
|
||||||
Format.eachElem((key, name) => {
|
Format.eachElem((key, name) => {
|
||||||
@ -28,13 +28,13 @@ let ArtisMark = {
|
|||||||
return ret
|
return ret
|
||||||
},
|
},
|
||||||
|
|
||||||
formatAttr (ds) {
|
formatAttr (ds, game = 'gs') {
|
||||||
if (!ds) {
|
if (!ds) {
|
||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
if (lodash.isArray(ds) && ds[0] && ds[1]) {
|
if (lodash.isArray(ds) && ds[0] && ds[1]) {
|
||||||
return {
|
return {
|
||||||
key: ArtisMark.getKeyByTitle(ds[0]),
|
key: ArtisMark.getKeyByTitle(ds[0], game),
|
||||||
value: ds[1]
|
value: ds[1]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -42,7 +42,7 @@ let ArtisMark = {
|
|||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
key: ds.key || ArtisMark.getKeyByTitle(ds.title || ds.name || ds.key || ds.id || ''),
|
key: ds.key || ArtisMark.getKeyByTitle(ds.title || ds.name || ds.key || ds.id || '', game),
|
||||||
value: ds.value || ''
|
value: ds.value || ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -52,58 +52,32 @@ let ArtisMark = {
|
|||||||
* @param ds
|
* @param ds
|
||||||
* @param charAttrCfg
|
* @param charAttrCfg
|
||||||
* @param isMain
|
* @param isMain
|
||||||
|
* @param game
|
||||||
* @returns {{title: *, value: string}|*[]}
|
* @returns {{title: *, value: string}|*[]}
|
||||||
*/
|
*/
|
||||||
formatArti (ds, charAttrCfg = false, isMain = false, game = 'gs') {
|
formatArti (ds, charAttrCfg = false, isMain = false, game = 'gs') {
|
||||||
// 若为attr数组
|
// 若为attr数组
|
||||||
if (ds[0] && (ds[0].title || ds[0].key)) {
|
if (ds[0] && (ds[0].title || ds[0].key)) {
|
||||||
let ret = []
|
let ret = []
|
||||||
let totalUpNum = 0
|
|
||||||
let ltArr = []
|
|
||||||
let isIdAttr = false
|
|
||||||
|
|
||||||
lodash.forEach(ds, (d) => {
|
lodash.forEach(ds, (d) => {
|
||||||
isIdAttr = !d.isCalcNum
|
|
||||||
let arti = ArtisMark.formatArti(d, charAttrCfg, isMain, game)
|
let arti = ArtisMark.formatArti(d, charAttrCfg, isMain, game)
|
||||||
ret.push(arti)
|
ret.push(arti)
|
||||||
if (isIdAttr) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
totalUpNum += arti.upNum
|
|
||||||
if (arti.hasLt) {
|
|
||||||
ltArr.push(arti)
|
|
||||||
}
|
|
||||||
delete arti.hasLt
|
|
||||||
delete arti.hasGt
|
|
||||||
})
|
})
|
||||||
if (!isIdAttr) {
|
|
||||||
ltArr = lodash.sortBy(ltArr, 'upNum').reverse()
|
|
||||||
for (let arti of ltArr) {
|
|
||||||
if (totalUpNum > 9) {
|
|
||||||
arti.upNum = arti.upNum - 1
|
|
||||||
totalUpNum--
|
|
||||||
} else {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
let key = ds.key
|
let key = ds.key
|
||||||
let title = ds.title || ds[0]
|
let title = ds.title || ds[0]
|
||||||
if (!key) {
|
if (!key) {
|
||||||
key = ArtisMark.getKeyByTitle(title)
|
key = ArtisMark.getKeyByTitle(title, game)
|
||||||
}
|
}
|
||||||
let isDmg = Format.isElem(key)
|
let isDmg = Format.isElem(key)
|
||||||
let val = ds.value || ds[1]
|
let val = ds.value || ds[1]
|
||||||
let value = val
|
|
||||||
let num = ds.value || ds[1]
|
let num = ds.value || ds[1]
|
||||||
if (!key || key === 'undefined') {
|
if (!key || key === 'undefined') {
|
||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
let arrCfg = (game === 'gs' ? attrMap : attrMapSR)[isDmg ? 'dmg' : key]
|
let arrCfg = (game === 'gs' ? attrMap : attrMapSR)[isDmg ? 'dmg' : key]
|
||||||
console.log(key, arrCfg)
|
|
||||||
val = Format[arrCfg?.format || 'comma'](val, 1)
|
val = Format[arrCfg?.format || 'comma'](val, 1)
|
||||||
let ret = {
|
let ret = {
|
||||||
key,
|
key,
|
||||||
@ -111,14 +85,6 @@ let ArtisMark = {
|
|||||||
upNum: ds.upNum || 0,
|
upNum: ds.upNum || 0,
|
||||||
eff: ds.eff || 0
|
eff: ds.eff || 0
|
||||||
}
|
}
|
||||||
/* if (!isMain && !ret.upNum) {
|
|
||||||
let incRet = ArtisMark.getIncNum(key, value)
|
|
||||||
ret.upNum = incRet.num
|
|
||||||
ret.eff = incRet.eff
|
|
||||||
ret.hasGt = incRet.hasGt
|
|
||||||
ret.hasLt = incRet.hasLt
|
|
||||||
ret.isCalcNum = true
|
|
||||||
}*/
|
|
||||||
|
|
||||||
if (charAttrCfg) {
|
if (charAttrCfg) {
|
||||||
let mark = charAttrCfg[key]?.mark * num || 0
|
let mark = charAttrCfg[key]?.mark * num || 0
|
||||||
@ -133,27 +99,6 @@ let ArtisMark = {
|
|||||||
return ret
|
return ret
|
||||||
},
|
},
|
||||||
|
|
||||||
// 获取升级次数
|
|
||||||
getIncNum (key, value) {
|
|
||||||
let cfg = attrMap[key]
|
|
||||||
if (!value || !cfg || !cfg.value || !cfg.valueMin) {
|
|
||||||
return { num: 0 }
|
|
||||||
}
|
|
||||||
let maxNum = Math.min(5, Math.floor((value / cfg.valueMin).toFixed(1) * 1))
|
|
||||||
let minNum = Math.max(1, Math.ceil((value / cfg.value).toFixed(1) * 1))
|
|
||||||
// 相等时直接返回
|
|
||||||
if (maxNum === minNum) {
|
|
||||||
return { num: minNum, eff: value / cfg.value }
|
|
||||||
}
|
|
||||||
let avg = Math.round(value / (cfg.value + cfg.valueMin) * 2)
|
|
||||||
return {
|
|
||||||
num: avg,
|
|
||||||
eff: value / cfg.value,
|
|
||||||
hasGt: maxNum > avg,
|
|
||||||
hasLt: minNum < avg
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
// 获取评分档位
|
// 获取评分档位
|
||||||
getMarkClass (mark) {
|
getMarkClass (mark) {
|
||||||
let pct = mark
|
let pct = mark
|
||||||
@ -292,7 +237,8 @@ let ArtisMark = {
|
|||||||
for (let idx = 1; idx <= 5; idx++) {
|
for (let idx = 1; idx <= 5; idx++) {
|
||||||
let ds = artis[idx]
|
let ds = artis[idx]
|
||||||
if (ds) {
|
if (ds) {
|
||||||
if (!ds.name || !ds.main || !ds.attrs || !ds?.main?.key) {
|
// 不再支持非id格式的面板
|
||||||
|
if (!ds.name || !ds.main || !ds.attrs || !ds?.main?.key || !ds.mainId) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ class AttrCalc {
|
|||||||
constructor (profile) {
|
constructor (profile) {
|
||||||
this.profile = profile
|
this.profile = profile
|
||||||
this.char = profile.char
|
this.char = profile.char
|
||||||
this.game = profile.game
|
this.game = this.char.game
|
||||||
}
|
}
|
||||||
|
|
||||||
get isGs () {
|
get isGs () {
|
||||||
@ -57,18 +57,18 @@ class AttrCalc {
|
|||||||
* @returns {{}}
|
* @returns {{}}
|
||||||
*/
|
*/
|
||||||
calc () {
|
calc () {
|
||||||
|
console.log('calc,hahahaha')
|
||||||
this.attr = ProfileAttr.create({}, this.game)
|
this.attr = ProfileAttr.create({}, this.game)
|
||||||
if (this.isGs) {
|
if (this.isGs) {
|
||||||
this.addAttr('recharge', 100, true)
|
this.addAttr('recharge', 100, true)
|
||||||
this.addAttr('cpct', 5, true)
|
this.addAttr('cpct', 5, true)
|
||||||
this.addAttr('cdmg', 50, true)
|
this.addAttr('cdmg', 50, true)
|
||||||
} else {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
this.setCharAttr()
|
this.setCharAttr()
|
||||||
this.setWeaponAttr()
|
this.setWeaponAttr()
|
||||||
this.setArtisAttr()
|
this.setArtisAttr()
|
||||||
return this.attr.getAttr()
|
return this.attr.getAttr()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getBase () {
|
getBase () {
|
||||||
@ -77,6 +77,9 @@ class AttrCalc {
|
|||||||
|
|
||||||
|
|
||||||
addAttr (key, val, isBase = false) {
|
addAttr (key, val, isBase = false) {
|
||||||
|
if (key === 'cpct') {
|
||||||
|
console.log('isCpct', val, isBase)
|
||||||
|
}
|
||||||
this.attr.addAttr(key, val, isBase)
|
this.attr.addAttr(key, val, isBase)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,11 +88,19 @@ class AttrCalc {
|
|||||||
* @param affix
|
* @param affix
|
||||||
*/
|
*/
|
||||||
setCharAttr (affix = '') {
|
setCharAttr (affix = '') {
|
||||||
if (this.isGs) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
let { char, level, promote } = this.profile
|
let { char, level, promote } = this.profile
|
||||||
let metaAttr = char.detail?.attr || {}
|
let metaAttr = char.detail?.attr || {}
|
||||||
|
let self = this
|
||||||
|
if (this.isSr) {
|
||||||
|
// 星铁面板属性
|
||||||
|
let attr = char.getLvAttr(level, promote)
|
||||||
|
lodash.forEach(attr, (v, k) => {
|
||||||
|
k = k + (['hp', 'atk', 'def'].includes(k) ? 'Base' : '')
|
||||||
|
self.addAttr(k, v, true)
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
let { keys = {}, details = {} } = metaAttr
|
let { keys = {}, details = {} } = metaAttr
|
||||||
let lvLeft = 0
|
let lvLeft = 0
|
||||||
let lvRight = 0
|
let lvRight = 0
|
||||||
@ -139,12 +150,19 @@ class AttrCalc {
|
|||||||
* 计算武器属性
|
* 计算武器属性
|
||||||
*/
|
*/
|
||||||
setWeaponAttr () {
|
setWeaponAttr () {
|
||||||
if (this.isGs) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
let wData = this.profile?.weapon || {}
|
let wData = this.profile?.weapon || {}
|
||||||
let weapon = Weapon.get(wData?.name || wData?.id, this.game)
|
let weapon = Weapon.get(wData?.name || wData?.id, this.game)
|
||||||
let wCalcRet = weapon.calcAttr(wData.level, wData.promote)
|
let wCalcRet = weapon.calcAttr(wData.level, wData.promote)
|
||||||
|
let self = this
|
||||||
|
|
||||||
|
if (this.isSr) {
|
||||||
|
// 星铁面板属性
|
||||||
|
lodash.forEach(wCalcRet, (v, k) => {
|
||||||
|
k = k + (['hp', 'atk', 'def'].includes(k) ? 'Base' : '')
|
||||||
|
self.addAttr(k, v, true)
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if (wCalcRet) {
|
if (wCalcRet) {
|
||||||
this.addAttr('atkBase', wCalcRet.atkBase)
|
this.addAttr('atkBase', wCalcRet.atkBase)
|
||||||
@ -172,15 +190,12 @@ class AttrCalc {
|
|||||||
* 计算圣遗物属性
|
* 计算圣遗物属性
|
||||||
*/
|
*/
|
||||||
setArtisAttr () {
|
setArtisAttr () {
|
||||||
if (this.isGs) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
let artis = this.profile?.artis
|
let artis = this.profile?.artis
|
||||||
// 计算圣遗物词条
|
// 计算圣遗物词条
|
||||||
artis.forEach((arti) => {
|
artis.forEach((arti) => {
|
||||||
this.calcArtisAttr(arti.main, this.char)
|
this.calcArtisAttr(arti.main, this.char)
|
||||||
lodash.forEach(arti.attrs, (ds) => {
|
lodash.forEach(arti.attrs, (ds) => {
|
||||||
this.calcArtisAttr(ds)
|
this.calcArtisAttr(ds, this.char)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
// 计算圣遗物静态加成
|
// 计算圣遗物静态加成
|
||||||
@ -201,6 +216,8 @@ class AttrCalc {
|
|||||||
/**
|
/**
|
||||||
* 计算单条圣遗物词缀
|
* 计算单条圣遗物词缀
|
||||||
* @param ds
|
* @param ds
|
||||||
|
* @param char
|
||||||
|
* @param autoPct
|
||||||
* @returns {boolean}
|
* @returns {boolean}
|
||||||
*/
|
*/
|
||||||
calcArtisAttr (ds, char) {
|
calcArtisAttr (ds, char) {
|
||||||
@ -214,6 +231,7 @@ class AttrCalc {
|
|||||||
if (!key) {
|
if (!key) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
console.log(key, ds.value)
|
||||||
if (['atk', 'hp', 'def'].includes(key)) {
|
if (['atk', 'hp', 'def'].includes(key)) {
|
||||||
key = key + 'Pct'
|
key = key + 'Pct'
|
||||||
}
|
}
|
||||||
|
@ -821,4 +821,15 @@ body {
|
|||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
color: #bbb;
|
color: #bbb;
|
||||||
}
|
}
|
||||||
|
.game-sr .char-talents {
|
||||||
|
transform: scale(0.8);
|
||||||
|
transform-origin: top left;
|
||||||
|
margin: -8px 0 -14px;
|
||||||
|
}
|
||||||
|
.game-sr .char-talents .talent-item {
|
||||||
|
margin: 0 -3px;
|
||||||
|
}
|
||||||
|
.game-sr .artis-weapon {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
/*# sourceMappingURL=profile-detail.css.map */
|
/*# sourceMappingURL=profile-detail.css.map */
|
@ -7,265 +7,271 @@
|
|||||||
{{set weapon = data.weapon}}
|
{{set weapon = data.weapon}}
|
||||||
|
|
||||||
{{set dataSource = data.dataSource}}
|
{{set dataSource = data.dataSource}}
|
||||||
{{set talentMap = {a: '普攻', e: '战技', q: '爆发'} }}
|
{{set talentMap = game === 'sr' ? {a: '普攻', e: '战技', t:'天赋', q: '爆发'} : {a: '普攻', e: '战技', q: '爆发'} }}
|
||||||
{{set {imgs, costumeSplash} = data }}
|
{{set {imgs, costumeSplash} = data }}
|
||||||
{{set imgs = imgs || {} }}
|
{{set imgs = imgs || {} }}
|
||||||
|
|
||||||
{{block 'main'}}
|
{{block 'main'}}
|
||||||
<div class="basic">
|
<div class="game-{{game}}">
|
||||||
<div class="main-pic"
|
<div class="basic">
|
||||||
style="background-image:url({{_res_path}}{{costumeSplash||imgs?.splash}})"></div>
|
<div class="main-pic"
|
||||||
<div class="detail">
|
style="background-image:url({{_res_path}}{{costumeSplash||imgs?.splash}})"></div>
|
||||||
<div class="char-name">{{data.name}}</div>
|
<div class="detail">
|
||||||
<div class="char-lv">UID {{uid}} - Lv.{{data.level}}
|
<div class="char-name">{{data.name}}</div>
|
||||||
<span class="cons cons-{{data.cons}}">{{data.cons}}命</span></div>
|
<div class="char-lv">UID {{uid}} - Lv.{{data.level}}
|
||||||
<div>
|
<span class="cons cons-{{data.cons}}">{{data.cons}}命</span></div>
|
||||||
{{if mode !== 'weapon'}}
|
<div>
|
||||||
<div class="char-talents">
|
{{if mode !== 'weapon'}}
|
||||||
{{each talentMap tName key}}
|
<div class="char-talents">
|
||||||
{{set talent = data.talent[key] || {} }}
|
{{each talentMap tName key}}
|
||||||
<div class="talent-item">
|
{{set talent = data.talent[key] || {} }}
|
||||||
<div class="talent-icon
|
<div class="talent-item">
|
||||||
|
<div class="talent-icon
|
||||||
{{talent.level > talent.original ? `talent-plus`:``}}
|
{{talent.level > talent.original ? `talent-plus`:``}}
|
||||||
{{talent.original >= 10 ? `talent-crown`:``}}">
|
{{talent.original >= 10 ? `talent-crown`:``}}">
|
||||||
<div class="talent-icon-img"
|
<div class="talent-icon-img"
|
||||||
style="background-image:url({{_res_path}}{{imgs[key]}})"></div>
|
style="background-image:url({{_res_path}}{{imgs[key]}})"></div>
|
||||||
<span>{{talent.level}}</span>
|
<span>{{talent.level}}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
<ul class="char-attr">
|
||||||
|
{{set attrMap = game === 'sr' ? {
|
||||||
|
hp:'生命值',atk:'攻击力',def:'防御力',speed:'速度',cpct:'暴击率',cdmg:'暴击伤害',dmg:'伤害加成',stance:'击破特效',effPct:'效果命中'
|
||||||
|
}:{
|
||||||
|
hp:'生命值',atk:'攻击力',def:'防御力',mastery:'元素精通',cpct:'暴击率',cdmg:'暴击伤害',recharge:'元素充能',dmg:'伤害加成'
|
||||||
|
} }}
|
||||||
|
{{set cw = artisDetail?.charWeight || {} }}
|
||||||
|
{{each attrMap title key}}
|
||||||
|
<li>
|
||||||
|
|
||||||
|
<div class="icon"><i class="i-{{key}}"></i></div>
|
||||||
|
|
||||||
|
<div class="title">{{title}}</div>
|
||||||
|
<div class="weight">
|
||||||
|
{{if cw[key]}}
|
||||||
|
<span class="{{cw[key]>=80?'gold':'normal'}}">{{cw[key]}}</span>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
<div class="value">
|
||||||
|
{{attr[key]}}
|
||||||
|
</div>
|
||||||
|
<div class="value2">
|
||||||
|
<span class="base">{{attr[key+'Base']}}</span>
|
||||||
|
<span class="plus">+{{attr[key+'Plus']}}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
{{else}}
|
||||||
|
<div class="char-weapon">
|
||||||
|
<div class="img" style="background-image:url({{_res_path}}{{weapon.img}})"></div>
|
||||||
|
<div class="head">
|
||||||
|
<strong>{{weapon.name}}</strong>
|
||||||
|
<div class="star star-{{weapon.star}}"></div>
|
||||||
|
<span>Lv.{{weapon.leve || weapon.level}} <span
|
||||||
|
class="affix affix-{{weapon.affix}}">精{{weapon.affix}}</span></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
<ul class="char-attr">
|
|
||||||
{{set attrMap = {hp:'生命值',atk:'攻击力',def:'防御力',mastery:'元素精通',cpct:'暴击率',cdmg:'暴击伤害',recharge:'元素充能',dmg:'伤害加成'} }}
|
|
||||||
{{set cw = artisDetail?.charWeight || {} }}
|
|
||||||
{{each attrMap title key}}
|
|
||||||
<li>
|
|
||||||
|
|
||||||
<div class="icon"><i class="i-{{key}}"></i></div>
|
|
||||||
|
|
||||||
<div class="title">{{title}}</div>
|
|
||||||
<div class="weight">
|
|
||||||
{{if cw[key]}}
|
|
||||||
<span class="{{cw[key]>=80?'gold':'normal'}}">{{cw[key]}}</span>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
<div class="value">
|
|
||||||
{{attr[key]}}
|
|
||||||
</div>
|
|
||||||
<div class="value2">
|
|
||||||
<span class="base">{{attr[key+'Base']}}</span>
|
|
||||||
<span class="plus">+{{attr[key+'Plus']}}</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
{{/each}}
|
|
||||||
</ul>
|
|
||||||
{{else}}
|
|
||||||
<div class="char-weapon">
|
|
||||||
<div class="img" style="background-image:url({{_res_path}}{{weapon.img}})"></div>
|
|
||||||
<div class="head">
|
|
||||||
<strong>{{weapon.name}}</strong>
|
|
||||||
<div class="star star-{{weapon.star}}"></div>
|
|
||||||
<span>Lv.{{weapon.leve || weapon.level}} <span
|
|
||||||
class="affix affix-{{weapon.affix}}">精{{weapon.affix}}</span></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="char-cons">
|
|
||||||
{{set cons = [1,2,3,4,5,6]}}
|
|
||||||
{{each cons idx}}
|
|
||||||
<div class="cons-item">
|
|
||||||
<div class="talent-icon {{idx * 1 > data.cons * 1 ? 'off' : '' }}">
|
|
||||||
<div class="talent-icon-img"
|
|
||||||
style="background-image:url({{_res_path}}{{imgs[`cons${idx}`]}})"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="data-info">
|
|
||||||
{{if data.dataSource}}
|
|
||||||
<span>数据源:{{ {change:"面板变换"}[data.dataSource]||data.dataSource }}</span>
|
|
||||||
{{/if}}
|
|
||||||
{{if data.updateTime}}
|
|
||||||
<span class="time">{{data.updateTime}}</span>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{if changeProfile}}
|
|
||||||
<div class="cont">
|
|
||||||
<div class="cont-footer dmg-desc">
|
|
||||||
<strong>该面板为非实际数据。当前替换命令:</strong> {{changeProfile}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<!-- 【 武器+圣遗物列表】 -->
|
|
||||||
<div>
|
|
||||||
{{if mode === "profile"}}
|
|
||||||
{{set ad = artisDetail}}
|
|
||||||
<div class="artis">
|
|
||||||
<div>
|
|
||||||
<div class="item weapon">
|
|
||||||
<div class="img" style="background-image:url({{_res_path}}{{weapon.img}})"></div>
|
|
||||||
<div class="head">
|
|
||||||
<strong>{{weapon.name}}</strong>
|
|
||||||
<div class="star star-{{weapon.star}}"></div>
|
|
||||||
<span>Lv.{{weapon.leve || weapon.level}} <span
|
|
||||||
class="affix affix-{{weapon.affix}}">精{{weapon.affix}}</span></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="item arti-stat">
|
|
||||||
<div class="arti-class-title">评分规则:{{ad.classTitle}}</div>
|
|
||||||
<div class="arti-stat-ret">
|
|
||||||
<div><strong class="mark-{{ad.markClass}}">{{ad.markClass}}</strong><span>圣遗物评级</span></div>
|
|
||||||
<div><strong>{{ad.mark}}</strong><span>圣遗物总分</span></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{each ad.artis ds idx}}
|
|
||||||
<div class="item arti">
|
|
||||||
{{if ds && ds.name && ds.main && ds.main.key && ds.main.key!="undefined"}}
|
|
||||||
<div class="arti-icon">
|
|
||||||
<div class="img" style="background-image:url({{_res_path}}{{ds.img}})"></div>
|
|
||||||
<span>+{{ds.level}}</span>
|
|
||||||
</div>
|
|
||||||
<div class="head">
|
|
||||||
<strong>{{ds.name}}</strong>
|
|
||||||
<span class="mark mark-{{ds.markClass}}"><span>{{ds.mark}}分</span> - {{ds.markClass}}</span>
|
|
||||||
</div>
|
|
||||||
<ul class="detail attr">
|
|
||||||
<li class="arti-main"><span class="title">{{artisKeyTitle[ds.main?.key]}}</span><span class="val">+{{ds.main.value}}</span>
|
|
||||||
</li>
|
|
||||||
{{each ds.attrs attr}}
|
|
||||||
{{if attr && attr.key}}
|
|
||||||
<li class="{{ad.charWeight[attr.key]*1 > 79.9 ?`great`:(ad.charWeight[attr.key]*1>0 ? `useful`:`nouse`)}}">
|
|
||||||
<span class="title">{{if attr.eff}}<i class="eff">{{attr.eff || ''}}</i>{{/if}}{{if attr.upNum}}<i class="up-num up-{{attr.upNum}}"></i>{{/if}}{{artisKeyTitle[attr.key]}}</span>
|
|
||||||
<span class="val">+{{attr.value}}</span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/each}}
|
</div>
|
||||||
</ul>
|
</div>
|
||||||
|
<div class="char-cons">
|
||||||
|
{{set cons = [1,2,3,4,5,6]}}
|
||||||
|
{{each cons idx}}
|
||||||
|
<div class="cons-item">
|
||||||
|
<div class="talent-icon {{idx * 1 > data.cons * 1 ? 'off' : '' }}">
|
||||||
|
<div class="talent-icon-img"
|
||||||
|
style="background-image:url({{_res_path}}{{imgs[`cons${idx}`]}})"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="data-info">
|
||||||
|
{{if data.dataSource}}
|
||||||
|
<span>数据源:{{ {change:"面板变换"}[data.dataSource]||data.dataSource }}</span>
|
||||||
|
{{/if}}
|
||||||
|
{{if data.updateTime}}
|
||||||
|
<span class="time">{{data.updateTime}}</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
{{/each}}
|
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
{{if changeProfile}}
|
||||||
<!-- 【 伤害表格 】 -->
|
|
||||||
{{ set {dmgRet, dmgCfg, enemyLv, enemyName, dmgMsg, dmgData} = dmgCalc }}
|
|
||||||
<div>
|
|
||||||
{{if mode === "profile"}}
|
|
||||||
<div class="cont">
|
<div class="cont">
|
||||||
<div class="cont-footer dmg-desc">
|
<div class="cont-footer dmg-desc">
|
||||||
当前评分为<strong>喵喵版评分规则</strong>,分值仅供参考与娱乐。可使用<strong>#{{data.abbr}}圣遗物</strong>来查看评分详情
|
<strong>该面板为非实际数据。当前替换命令:</strong> {{changeProfile}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{if dmgData?.length > 0}}
|
<!-- 【 武器+圣遗物列表】 -->
|
||||||
<div class="dmg-cont dmg-list cont">
|
<div>
|
||||||
<div class="cont-title">
|
{{if mode === "profile"}}
|
||||||
伤害计算<span>目标为{{enemyLv}}级{{enemyName||'小宝'}},如需调整等级可使用 #敌人等级{{enemyLv}} 来进行设置</span>
|
{{set ad = artisDetail}}
|
||||||
</div>
|
<div class="artis">
|
||||||
<div class="cont-table">
|
<div class="artis-weapon">
|
||||||
<div class="tr thead">
|
<div class="item weapon">
|
||||||
<div class="title dmg-idx">#</div>
|
<div class="img" style="background-image:url({{_res_path}}{{weapon.img}})"></div>
|
||||||
<div class="title dmg-title">伤害类型</div>
|
<div class="head">
|
||||||
<div>暴击伤害</div>
|
<strong>{{weapon.name}}</strong>
|
||||||
<div>平均伤害(计算暴击率)</div>
|
<div class="star star-{{weapon.star}}"></div>
|
||||||
|
<span>Lv.{{weapon.leve || weapon.level}} <span
|
||||||
|
class="affix affix-{{weapon.affix}}">精{{weapon.affix}}</span></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="item arti-stat">
|
||||||
|
<div class="arti-class-title">评分规则:{{ad.classTitle}}</div>
|
||||||
|
<div class="arti-stat-ret">
|
||||||
|
<div><strong class="mark-{{ad.markClass}}">{{ad.markClass}}</strong><span>圣遗物评级</span></div>
|
||||||
|
<div><strong>{{ad.mark}}</strong><span>圣遗物总分</span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{each dmgData dmg idx}}
|
{{each ad.artis ds idx}}
|
||||||
<div class="dmg tr">
|
<div class="item arti">
|
||||||
<div class="title dmg-idx">{{idx+1}}</div>
|
{{if ds && ds.name && ds.main && ds.main.key && ds.main.key!="undefined"}}
|
||||||
<div class="title dmg-title">{{dmg.title}}</div>
|
<div class="arti-icon">
|
||||||
{{if dmg.dmg === "NaN"}}
|
<div class="img" style="background-image:url({{_res_path}}{{ds.img}})"></div>
|
||||||
<div class="value value-full">{{dmg.avg}}{{dmg.unit}}</div>
|
<span>+{{ds.level}}</span>
|
||||||
<div class="value value-none"></div>
|
</div>
|
||||||
{{else}}
|
<div class="head">
|
||||||
<div class="value">{{dmg.dmg}}{{dmg.unit}}</div>
|
<strong>{{ds.name}}</strong>
|
||||||
<div class="value">{{dmg.avg}}{{dmg.unit}}</div>
|
<span class="mark mark-{{ds.markClass}}"><span>{{ds.mark}}分</span> - {{ds.markClass}}</span>
|
||||||
|
</div>
|
||||||
|
<ul class="detail attr">
|
||||||
|
<li class="arti-main"><span class="title">{{artisKeyTitle[ds.main?.key]}}</span><span class="val">+{{ds.main.value}}</span>
|
||||||
|
</li>
|
||||||
|
{{each ds.attrs attr}}
|
||||||
|
{{if attr && attr.key}}
|
||||||
|
<li class="{{ad.charWeight[attr.key]*1 > 79.9 ?`great`:(ad.charWeight[attr.key]*1>0 ? `useful`:`nouse`)}}">
|
||||||
|
<span class="title">{{if attr.eff}}<i class="eff">{{attr.eff || ''}}</i>{{/if}}{{if attr.upNum}}<i
|
||||||
|
class="up-num up-{{attr.upNum}}"></i>{{/if}}{{artisKeyTitle[attr.key] || attr.key}}</span>
|
||||||
|
<span class="val">+{{attr.value}}</span>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
<div class="cont-footer dmg-desc">
|
{{/if}}
|
||||||
使用命令<strong>#{{data.abbr}}伤害</strong>可以查看伤害详情,使用命令<strong>#角色面板帮助</strong>可查看帮助说明
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- 【 伤害变化详情 】 -->
|
|
||||||
<div>
|
<!-- 【 伤害表格 】 -->
|
||||||
{{if mode === "dmg"}}
|
{{ set {dmgRet, dmgCfg, enemyLv, enemyName, dmgMsg, dmgData} = dmgCalc }}
|
||||||
{{if dmgCfg && dmgCfg.attr && dmgCfg.attr.length>0 && dmgRet}}
|
<div>
|
||||||
<div class="dmg-calc dmg-cont cont">
|
{{if mode === "profile"}}
|
||||||
<div class="cont-title">
|
<div class="cont">
|
||||||
词条伤害计算<span>#{{data.abbr}}伤害{{dmgCfg.userIdx+1}}: 当前计算为[{{dmgCfg.title}}]</span>
|
<div class="cont-footer dmg-desc">
|
||||||
|
当前评分为<strong>喵喵版评分规则</strong>,分值仅供参考与娱乐。可使用<strong>#{{data.abbr}}圣遗物</strong>来查看评分详情
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="cont-table">
|
{{/if}}
|
||||||
<div class="tr thead ">
|
|
||||||
<div class="td">词条变化</div>
|
{{if dmgData?.length > 0}}
|
||||||
{{each dmgCfg.attr attr}}
|
<div class="dmg-cont dmg-list cont">
|
||||||
<div class="td">
|
<div class="cont-title">
|
||||||
<strong>{{attr.title}}</strong>
|
伤害计算<span>目标为{{enemyLv}}级{{enemyName||'小宝'}},如需调整等级可使用 #敌人等级{{enemyLv}} 来进行设置</span>
|
||||||
<span>+{{attr.text}}</span>
|
</div>
|
||||||
|
<div class="cont-table">
|
||||||
|
<div class="tr thead">
|
||||||
|
<div class="title dmg-idx">#</div>
|
||||||
|
<div class="title dmg-title">伤害类型</div>
|
||||||
|
<div>暴击伤害</div>
|
||||||
|
<div>平均伤害(计算暴击率)</div>
|
||||||
|
</div>
|
||||||
|
{{each dmgData dmg idx}}
|
||||||
|
<div class="dmg tr">
|
||||||
|
<div class="title dmg-idx">{{idx+1}}</div>
|
||||||
|
<div class="title dmg-title">{{dmg.title}}</div>
|
||||||
|
{{if dmg.dmg === "NaN"}}
|
||||||
|
<div class="value value-full">{{dmg.avg}}{{dmg.unit}}</div>
|
||||||
|
<div class="value value-none"></div>
|
||||||
|
{{else}}
|
||||||
|
<div class="value">{{dmg.dmg}}{{dmg.unit}}</div>
|
||||||
|
<div class="value">{{dmg.avg}}{{dmg.unit}}</div>
|
||||||
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
{{each dmgRet row rowIdx}}
|
<div class="cont-footer dmg-desc">
|
||||||
<div class="tr">
|
使用命令<strong>#{{data.abbr}}伤害</strong>可以查看伤害详情,使用命令<strong>#角色面板帮助</strong>可查看帮助说明
|
||||||
<div class="title">
|
</div>
|
||||||
<strong>{{dmgCfg.attr[rowIdx].title}}</strong>
|
</div>
|
||||||
<span>-{{dmgCfg.attr[rowIdx].text}}</span>
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
{{each row cell colIdx}}
|
|
||||||
{{if cell.type === "na"}}
|
|
||||||
<div class="td na">
|
|
||||||
<strong>-</strong>
|
|
||||||
<span>{{dmgCfg.basicRet.avg}}{{dmgCfg.basicRet.dmg!="NaN"?`/${dmgCfg.basicRet.dmg}`:''}}</span>
|
|
||||||
</div>
|
|
||||||
{{else}}
|
|
||||||
<div class="td {{cell.type}}">
|
|
||||||
<strong>{{cell.val}}</strong>
|
|
||||||
|
|
||||||
<span>{{cell.avg}}{{cell.dmg!="NaN"?`/${cell.dmg}`:''}}</span>
|
<!-- 【 伤害变化详情 】 -->
|
||||||
|
<div>
|
||||||
|
{{if mode === "dmg"}}
|
||||||
|
{{if dmgCfg && dmgCfg.attr && dmgCfg.attr.length>0 && dmgRet}}
|
||||||
|
<div class="dmg-calc dmg-cont cont">
|
||||||
|
<div class="cont-title">
|
||||||
|
词条伤害计算<span>#{{data.abbr}}伤害{{dmgCfg.userIdx+1}}: 当前计算为[{{dmgCfg.title}}]</span>
|
||||||
|
</div>
|
||||||
|
<div class="cont-table">
|
||||||
|
<div class="tr thead ">
|
||||||
|
<div class="td">词条变化</div>
|
||||||
|
{{each dmgCfg.attr attr}}
|
||||||
|
<div class="td">
|
||||||
|
<strong>{{attr.title}}</strong>
|
||||||
|
<span>+{{attr.text}}</span>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
{{each dmgRet row rowIdx}}
|
||||||
|
<div class="tr">
|
||||||
|
<div class="title">
|
||||||
|
<strong>{{dmgCfg.attr[rowIdx].title}}</strong>
|
||||||
|
<span>-{{dmgCfg.attr[rowIdx].text}}</span>
|
||||||
|
</div>
|
||||||
|
{{each row cell colIdx}}
|
||||||
|
{{if cell.type === "na"}}
|
||||||
|
<div class="td na">
|
||||||
|
<strong>-</strong>
|
||||||
|
<span>{{dmgCfg.basicRet.avg}}{{dmgCfg.basicRet.dmg!="NaN"?`/${dmgCfg.basicRet.dmg}`:''}}</span>
|
||||||
|
</div>
|
||||||
|
{{else}}
|
||||||
|
<div class="td {{cell.type}}">
|
||||||
|
<strong>{{cell.val}}</strong>
|
||||||
|
|
||||||
|
<span>{{cell.avg}}{{cell.dmg!="NaN"?`/${cell.dmg}`:''}}</span>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
{{/each}}
|
<div class="cont-footer dmg-desc">
|
||||||
</div>
|
<ul>
|
||||||
<div class="cont-footer dmg-desc">
|
<li>大数字的含义为圣遗物副词条置换后<strong>平均伤害</strong>的变化,下方的详情数字为<strong>平均伤害</strong>/<strong>暴击伤害</strong>。</li>
|
||||||
<ul>
|
<li>关于<strong>平均伤害</strong>:是将暴击率计算在内的伤害期望,能反映综合的输出能力,不等于实际伤害数字。</li>
|
||||||
<li>大数字的含义为圣遗物副词条置换后<strong>平均伤害</strong>的变化,下方的详情数字为<strong>平均伤害</strong>/<strong>暴击伤害</strong>。</li>
|
<li>可用于评估当前面板下圣遗物副词条的侧重方向。实际游戏情况更加复杂,结果供参考~</li>
|
||||||
<li>关于<strong>平均伤害</strong>:是将暴击率计算在内的伤害期望,能反映综合的输出能力,不等于实际伤害数字。</li>
|
<li>如需更换计算的伤害类型,可使用命令 <strong>#{{data.abbr}}伤害+序号</strong>来切换,序号参见伤害计算板块</li>
|
||||||
<li>可用于评估当前面板下圣遗物副词条的侧重方向。实际游戏情况更加复杂,结果供参考~</li>
|
</ul>
|
||||||
<li>如需更换计算的伤害类型,可使用命令 <strong>#{{data.abbr}}伤害+序号</strong>来切换,序号参见伤害计算板块</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<div class="dmg-cont dmg-msg cont">
|
|
||||||
<div class="cont-title">Buff列表<span>部分Buff的触发条件以及层数可能影响实际伤害结果</span></div>
|
|
||||||
<div class="cont-table">
|
|
||||||
{{each dmgMsg msg}}
|
|
||||||
<div class="tr">
|
|
||||||
<div class="th">{{msg[0]}}</div>
|
|
||||||
<div class="td">{{msg[1]}}</div>
|
|
||||||
</div>
|
</div>
|
||||||
{{/each}}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
{{/if}}
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
<div class="dmg-cont dmg-msg cont">
|
||||||
|
<div class="cont-title">Buff列表<span>部分Buff的触发条件以及层数可能影响实际伤害结果</span></div>
|
||||||
|
<div class="cont-table">
|
||||||
|
{{each dmgMsg msg}}
|
||||||
|
<div class="tr">
|
||||||
|
<div class="th">{{msg[0]}}</div>
|
||||||
|
<div class="td">{{msg[1]}}</div>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{{/block}}
|
{{/block}}
|
@ -1030,3 +1030,20 @@ body {
|
|||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
color: #bbb;
|
color: #bbb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.game-sr {
|
||||||
|
.char-talents {
|
||||||
|
transform: scale(.8);
|
||||||
|
transform-origin: top left;
|
||||||
|
margin: -8px 0 -14px;
|
||||||
|
|
||||||
|
|
||||||
|
.talent-item {
|
||||||
|
margin: 0 -3px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis-weapon {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
@ -1,21 +1,22 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="zh-cn">
|
<html lang="zh-cn">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width">
|
<meta name="viewport" content="width=device-width">
|
||||||
<link rel="shortcut icon" href="#"/>
|
<link rel="shortcut icon" href="#"/>
|
||||||
<link rel="preload" href="{{_miao_path}}common/font/HYWH-65W.woff" as="font" type="font/woff">
|
<link rel="preload" href="{{_miao_path}}common/font/HYWH-65W.woff" as="font" type="font/woff">
|
||||||
<link rel="preload" href="{{_miao_path}}common/font/NZBZ.woff" as="font" type="font/woff">
|
<link rel="preload" href="{{_miao_path}}common/font/NZBZ.woff" as="font" type="font/woff">
|
||||||
<link rel="preload" href="{{_miao_path}}common/font/tttgbnumber.woff" as="font" type="font/woff">
|
<link rel="preload" href="{{_miao_path}}common/font/tttgbnumber.woff" as="font" type="font/woff">
|
||||||
<link rel="stylesheet" type="text/css" href="{{_miao_path}}common/common.css"/>
|
<link rel="stylesheet" type="text/css" href="{{_miao_path}}common/common.css"/>
|
||||||
<title>miao-plugin</title>
|
<title>miao-plugin</title>
|
||||||
{{block 'css'}}
|
{{block 'css'}}
|
||||||
{{/block}}
|
{{/block}}
|
||||||
</head>
|
</head>
|
||||||
<body class="elem-{{element||elem||`hydro`}} {{displayMode || mode || `default`}}-mode {{bodyClass}}" {{sys.scale}}>
|
{{set elemCls = {火:'pyro',冰:'cryo',风:'anemo',雷:'electro',量子:'electro',虚数:'geo',物理:'hydro', }[element||elem] || element || elem || 'hydro' }}
|
||||||
<div class="container elem-bg" id="container">
|
<body class="elem-{{elemCls}} {{displayMode || mode || `default`}}-mode {{bodyClass}}" {{sys.scale}}>
|
||||||
{{block 'main'}}{{/block}}
|
<div class="container elem-bg" id="container">
|
||||||
<div class="copyright">{{@copyright || sys?.copyright}}</div>
|
{{block 'main'}}{{/block}}
|
||||||
</div>
|
<div class="copyright">{{@copyright || sys?.copyright}}</div>
|
||||||
</body>
|
</div>
|
||||||
|
</body>
|
||||||
</html>
|
</html>
|
@ -1,130 +1,175 @@
|
|||||||
{
|
{
|
||||||
"mainIdx": {
|
"mainIdx": {
|
||||||
"1": [
|
"1": {
|
||||||
"hp"
|
"1": "hpPlus"
|
||||||
],
|
},
|
||||||
"2": [
|
"2": {
|
||||||
"atk"
|
"1": "atkPlus"
|
||||||
],
|
},
|
||||||
"3": [
|
"3": {
|
||||||
"hpPct",
|
"1": "hp",
|
||||||
"atkPct",
|
"2": "atk",
|
||||||
"defPct",
|
"3": "def",
|
||||||
"cpct",
|
"4": "cpct",
|
||||||
"cdmg",
|
"5": "cdmg",
|
||||||
"heal",
|
"6": "heal",
|
||||||
"effPct"
|
"7": "effPct"
|
||||||
],
|
},
|
||||||
"4": [
|
"4": {
|
||||||
"hpPct",
|
"1": "hp",
|
||||||
"atkPct",
|
"2": "atk",
|
||||||
"defPct",
|
"3": "def",
|
||||||
"speed"
|
"4": "speed"
|
||||||
],
|
},
|
||||||
"5": [
|
"5": {
|
||||||
"hpPct",
|
"1": "hp",
|
||||||
"atkPct",
|
"2": "atk",
|
||||||
"defPct",
|
"3": "def",
|
||||||
"phy",
|
"4": "phy",
|
||||||
"fire",
|
"5": "fire",
|
||||||
"ice",
|
"6": "ice",
|
||||||
"elec",
|
"7": "elec",
|
||||||
"wind",
|
"8": "wind",
|
||||||
"quantum",
|
"9": "quantum",
|
||||||
"imaginary"
|
"10": "imaginary"
|
||||||
],
|
},
|
||||||
"6": [
|
"6": {
|
||||||
"stance",
|
"1": "stance",
|
||||||
"recharge",
|
"2": "recharge",
|
||||||
"hpPct",
|
"3": "hp",
|
||||||
"atkPct",
|
"4": "atk",
|
||||||
"defPct"
|
"5": "def"
|
||||||
]
|
}
|
||||||
},
|
},
|
||||||
"starData": {
|
"starData": {
|
||||||
"2": {
|
"2": {
|
||||||
"main": {
|
"main": {
|
||||||
"1": {
|
"hpPlus": {
|
||||||
"key": "stance",
|
"id": "1",
|
||||||
"base": 0.04147200076840818,
|
"base": 45.158399999840185,
|
||||||
"step": 0.014515000162646174
|
"step": 15.805440000956878
|
||||||
},
|
},
|
||||||
"2": {
|
"atkPlus": {
|
||||||
"key": "recharge",
|
"id": "1",
|
||||||
"base": 0.01244200044311583,
|
"base": 22.579200000036508,
|
||||||
"step": 0.004355000331997871
|
"step": 7.902720001293346
|
||||||
},
|
},
|
||||||
"3": {
|
"hp": {
|
||||||
"key": "hpPct",
|
"id": "3",
|
||||||
"base": 0.027648000279441476,
|
"base": 2.7648000279441476,
|
||||||
"step": 0.009677000343799591
|
"step": 0.9677000343799591
|
||||||
},
|
},
|
||||||
"4": {
|
"atk": {
|
||||||
"key": "atkPct",
|
"id": "4",
|
||||||
"base": 0.027648000279441476,
|
"base": 2.7648000279441476,
|
||||||
"step": 0.009677000343799591
|
"step": 0.9677000343799591
|
||||||
},
|
},
|
||||||
"5": {
|
"def": {
|
||||||
"key": "defPct",
|
"id": "5",
|
||||||
"base": 0.03456000052392483,
|
"base": 3.4560000523924828,
|
||||||
"step": 0.012096000602468848
|
"step": 1.2096000602468848
|
||||||
},
|
},
|
||||||
"6": {
|
"cpct": {
|
||||||
"key": "ice",
|
"id": "4",
|
||||||
"base": 0.024883000878617167,
|
"base": 2.0736000733450055,
|
||||||
"step": 0.008708999957889318
|
"step": 0.7258000085130334
|
||||||
},
|
},
|
||||||
"7": {
|
"cdmg": {
|
||||||
"key": "elec",
|
"id": "5",
|
||||||
"base": 0.024883000878617167,
|
"base": 4.147200076840818,
|
||||||
"step": 0.008708999957889318
|
"step": 1.4515000162646174
|
||||||
},
|
},
|
||||||
"8": {
|
"heal": {
|
||||||
"key": "wind",
|
"id": "6",
|
||||||
"base": 0.024883000878617167,
|
"base": 2.2118000080808997,
|
||||||
"step": 0.008708999957889318
|
"step": 0.7741000270470977
|
||||||
},
|
},
|
||||||
"9": {
|
"effPct": {
|
||||||
"key": "quantum",
|
"id": "7",
|
||||||
"base": 0.024883000878617167,
|
"base": 2.7648000279441476,
|
||||||
"step": 0.008708999957889318
|
"step": 0.9677000343799591
|
||||||
},
|
},
|
||||||
"10": {
|
"speed": {
|
||||||
"key": "imaginary",
|
"id": "4",
|
||||||
"base": 0.024883000878617167,
|
"base": 1.6128000009339303,
|
||||||
"step": 0.008708999957889318
|
"step": 1
|
||||||
|
},
|
||||||
|
"phy": {
|
||||||
|
"id": "4",
|
||||||
|
"base": 2.4883000878617167,
|
||||||
|
"step": 0.8708999957889318
|
||||||
|
},
|
||||||
|
"fire": {
|
||||||
|
"id": "5",
|
||||||
|
"base": 2.4883000878617167,
|
||||||
|
"step": 0.8708999957889318
|
||||||
|
},
|
||||||
|
"ice": {
|
||||||
|
"id": "6",
|
||||||
|
"base": 2.4883000878617167,
|
||||||
|
"step": 0.8708999957889318
|
||||||
|
},
|
||||||
|
"elec": {
|
||||||
|
"id": "7",
|
||||||
|
"base": 2.4883000878617167,
|
||||||
|
"step": 0.8708999957889318
|
||||||
|
},
|
||||||
|
"wind": {
|
||||||
|
"id": "8",
|
||||||
|
"base": 2.4883000878617167,
|
||||||
|
"step": 0.8708999957889318
|
||||||
|
},
|
||||||
|
"quantum": {
|
||||||
|
"id": "9",
|
||||||
|
"base": 2.4883000878617167,
|
||||||
|
"step": 0.8708999957889318
|
||||||
|
},
|
||||||
|
"imaginary": {
|
||||||
|
"id": "10",
|
||||||
|
"base": 2.4883000878617167,
|
||||||
|
"step": 0.8708999957889318
|
||||||
|
},
|
||||||
|
"stance": {
|
||||||
|
"id": "1",
|
||||||
|
"base": 4.147200076840818,
|
||||||
|
"step": 1.4515000162646174
|
||||||
|
},
|
||||||
|
"recharge": {
|
||||||
|
"id": "2",
|
||||||
|
"base": 1.244200044311583,
|
||||||
|
"step": 0.43550003319978714
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sub": {
|
"sub": {
|
||||||
"1": {
|
"1": {
|
||||||
"key": "hp",
|
"key": "hpPlus",
|
||||||
"base": 13.548016000073403,
|
"base": 13.548016000073403,
|
||||||
"step": 1.693502000765875
|
"step": 1.693502000765875
|
||||||
},
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"key": "atk",
|
"key": "atkPlus",
|
||||||
"base": 6.774008000502363,
|
"base": 6.774008000502363,
|
||||||
"step": 0.8467510011978447
|
"step": 0.8467510011978447
|
||||||
},
|
},
|
||||||
"3": {
|
"3": {
|
||||||
"key": "def",
|
"key": "defPlus",
|
||||||
"base": 6.774008000502363,
|
"base": 6.774008000502363,
|
||||||
"step": 0.8467510011978447
|
"step": 0.8467510011978447
|
||||||
},
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"key": "hpPct",
|
"key": "hp",
|
||||||
"base": 0.013824000488966703,
|
"base": 1.3824000488966703,
|
||||||
"step": 0.0017280005849897861
|
"step": 0.17280005849897861
|
||||||
},
|
},
|
||||||
"5": {
|
"5": {
|
||||||
"key": "atkPct",
|
"key": "atk",
|
||||||
"base": 0.013824000488966703,
|
"base": 1.3824000488966703,
|
||||||
"step": 0.0017280005849897861
|
"step": 0.17280005849897861
|
||||||
},
|
},
|
||||||
"6": {
|
"6": {
|
||||||
"key": "defPct",
|
"key": "def",
|
||||||
"base": 0.017280000261962414,
|
"base": 1.7280000261962414,
|
||||||
"step": 0.002160000381991267
|
"step": 0.21600003819912672
|
||||||
},
|
},
|
||||||
"7": {
|
"7": {
|
||||||
"key": "speed",
|
"key": "speed",
|
||||||
@ -133,114 +178,159 @@
|
|||||||
},
|
},
|
||||||
"8": {
|
"8": {
|
||||||
"key": "cpct",
|
"key": "cpct",
|
||||||
"base": 0.010368000715970993,
|
"base": 1.0368000715970993,
|
||||||
"step": 0.001296000787988305
|
"step": 0.1296000787988305
|
||||||
},
|
},
|
||||||
"9": {
|
"9": {
|
||||||
"key": "cdmg",
|
"key": "cdmg",
|
||||||
"base": 0.020736000733450055,
|
"base": 2.0736000733450055,
|
||||||
"step": 0.0025920008774846792
|
"step": 0.2592000877484679
|
||||||
},
|
},
|
||||||
"10": {
|
"10": {
|
||||||
"key": "effPct",
|
"key": "effPct",
|
||||||
"base": 0.013824000488966703,
|
"base": 1.3824000488966703,
|
||||||
"step": 0.0017280005849897861
|
"step": 0.17280005849897861
|
||||||
},
|
},
|
||||||
"11": {
|
"11": {
|
||||||
"key": "effDef",
|
"key": "effDef",
|
||||||
"base": 0.013824000488966703,
|
"base": 1.3824000488966703,
|
||||||
"step": 0.0017280005849897861
|
"step": 0.17280005849897861
|
||||||
},
|
},
|
||||||
"12": {
|
"12": {
|
||||||
"key": "stance",
|
"key": "stance",
|
||||||
"base": 0.020736000733450055,
|
"base": 2.0736000733450055,
|
||||||
"step": 0.0025920008774846792
|
"step": 0.2592000877484679
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"3": {
|
"3": {
|
||||||
"main": {
|
"main": {
|
||||||
"1": {
|
"hpPlus": {
|
||||||
"key": "stance",
|
"id": "1",
|
||||||
"base": 0.06220800010487437,
|
"base": 67.73760000057518,
|
||||||
"step": 0.02177300094626844
|
"step": 23.70816000062041
|
||||||
},
|
},
|
||||||
"2": {
|
"atkPlus": {
|
||||||
"key": "recharge",
|
"id": "1",
|
||||||
"base": 0.018662000307813287,
|
"base": 33.868800000753254,
|
||||||
"step": 0.006532000144943595
|
"step": 11.854080001125112
|
||||||
},
|
},
|
||||||
"3": {
|
"hp": {
|
||||||
"key": "hpPct",
|
"id": "3",
|
||||||
"base": 0.04147200076840818,
|
"base": 4.147200076840818,
|
||||||
"step": 0.014515000162646174
|
"step": 1.4515000162646174
|
||||||
},
|
},
|
||||||
"4": {
|
"atk": {
|
||||||
"key": "atkPct",
|
"id": "4",
|
||||||
"base": 0.04147200076840818,
|
"base": 4.147200076840818,
|
||||||
"step": 0.014515000162646174
|
"step": 1.4515000162646174
|
||||||
},
|
},
|
||||||
"5": {
|
"def": {
|
||||||
"key": "defPct",
|
"id": "5",
|
||||||
"base": 0.05184000078588724,
|
"base": 5.184000078588724,
|
||||||
"step": 0.018143999855965376
|
"step": 1.8143999855965376
|
||||||
},
|
},
|
||||||
"6": {
|
"cpct": {
|
||||||
"key": "ice",
|
"id": "4",
|
||||||
"base": 0.037324999924749136,
|
"base": 3.1104000052437186,
|
||||||
"step": 0.01306400028988719
|
"step": 1.0886001167818904
|
||||||
},
|
},
|
||||||
"7": {
|
"cdmg": {
|
||||||
"key": "elec",
|
"id": "5",
|
||||||
"base": 0.037324999924749136,
|
"base": 6.220800010487437,
|
||||||
"step": 0.01306400028988719
|
"step": 2.177300094626844
|
||||||
},
|
},
|
||||||
"8": {
|
"heal": {
|
||||||
"key": "wind",
|
"id": "6",
|
||||||
"base": 0.037324999924749136,
|
"base": 3.3178000478073955,
|
||||||
"step": 0.01306400028988719
|
"step": 1.1612000409513712
|
||||||
},
|
},
|
||||||
"9": {
|
"effPct": {
|
||||||
"key": "quantum",
|
"id": "7",
|
||||||
"base": 0.037324999924749136,
|
"base": 4.147200076840818,
|
||||||
"step": 0.01306400028988719
|
"step": 1.4515000162646174
|
||||||
},
|
},
|
||||||
"10": {
|
"speed": {
|
||||||
"key": "imaginary",
|
"id": "4",
|
||||||
"base": 0.037324999924749136,
|
"base": 2.4191999998874962,
|
||||||
"step": 0.01306400028988719
|
"step": 1
|
||||||
|
},
|
||||||
|
"phy": {
|
||||||
|
"id": "4",
|
||||||
|
"base": 3.7324999924749136,
|
||||||
|
"step": 1.306400028988719
|
||||||
|
},
|
||||||
|
"fire": {
|
||||||
|
"id": "5",
|
||||||
|
"base": 3.7324999924749136,
|
||||||
|
"step": 1.306400028988719
|
||||||
|
},
|
||||||
|
"ice": {
|
||||||
|
"id": "6",
|
||||||
|
"base": 3.7324999924749136,
|
||||||
|
"step": 1.306400028988719
|
||||||
|
},
|
||||||
|
"elec": {
|
||||||
|
"id": "7",
|
||||||
|
"base": 3.7324999924749136,
|
||||||
|
"step": 1.306400028988719
|
||||||
|
},
|
||||||
|
"wind": {
|
||||||
|
"id": "8",
|
||||||
|
"base": 3.7324999924749136,
|
||||||
|
"step": 1.306400028988719
|
||||||
|
},
|
||||||
|
"quantum": {
|
||||||
|
"id": "9",
|
||||||
|
"base": 3.7324999924749136,
|
||||||
|
"step": 1.306400028988719
|
||||||
|
},
|
||||||
|
"imaginary": {
|
||||||
|
"id": "10",
|
||||||
|
"base": 3.7324999924749136,
|
||||||
|
"step": 1.306400028988719
|
||||||
|
},
|
||||||
|
"stance": {
|
||||||
|
"id": "1",
|
||||||
|
"base": 6.220800010487437,
|
||||||
|
"step": 2.177300094626844
|
||||||
|
},
|
||||||
|
"recharge": {
|
||||||
|
"id": "2",
|
||||||
|
"base": 1.8662000307813287,
|
||||||
|
"step": 0.6532000144943595
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sub": {
|
"sub": {
|
||||||
"1": {
|
"1": {
|
||||||
"key": "hp",
|
"key": "hpPlus",
|
||||||
"base": 20.32202300033532,
|
"base": 20.32202300033532,
|
||||||
"step": 2.540253001032397
|
"step": 2.540253001032397
|
||||||
},
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"key": "atk",
|
"key": "atkPlus",
|
||||||
"base": 10.161012000171468,
|
"base": 10.161012000171468,
|
||||||
"step": 1.2701260005123913
|
"step": 1.2701260005123913
|
||||||
},
|
},
|
||||||
"3": {
|
"3": {
|
||||||
"key": "def",
|
"key": "defPlus",
|
||||||
"base": 10.161012000171468,
|
"base": 10.161012000171468,
|
||||||
"step": 1.2701260005123913
|
"step": 1.2701260005123913
|
||||||
},
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"key": "hpPct",
|
"key": "hp",
|
||||||
"base": 0.020736000733450055,
|
"base": 2.0736000733450055,
|
||||||
"step": 0.0025920008774846792
|
"step": 0.2592000877484679
|
||||||
},
|
},
|
||||||
"5": {
|
"5": {
|
||||||
"key": "atkPct",
|
"key": "atk",
|
||||||
"base": 0.020736000733450055,
|
"base": 2.0736000733450055,
|
||||||
"step": 0.0025920008774846792
|
"step": 0.2592000877484679
|
||||||
},
|
},
|
||||||
"6": {
|
"6": {
|
||||||
"key": "defPct",
|
"key": "def",
|
||||||
"base": 0.02592000039294362,
|
"base": 2.592000039294362,
|
||||||
"step": 0.0032400002237409353
|
"step": 0.32400002237409353
|
||||||
},
|
},
|
||||||
"7": {
|
"7": {
|
||||||
"key": "speed",
|
"key": "speed",
|
||||||
@ -249,114 +339,159 @@
|
|||||||
},
|
},
|
||||||
"8": {
|
"8": {
|
||||||
"key": "cpct",
|
"key": "cpct",
|
||||||
"base": 0.015552000375464559,
|
"base": 1.5552000375464559,
|
||||||
"step": 0.0019440008327364922
|
"step": 0.19440008327364922
|
||||||
},
|
},
|
||||||
"9": {
|
"9": {
|
||||||
"key": "cdmg",
|
"key": "cdmg",
|
||||||
"base": 0.031104000052437186,
|
"base": 3.1104000052437186,
|
||||||
"step": 0.0038880009669810534
|
"step": 0.38880009669810534
|
||||||
},
|
},
|
||||||
"10": {
|
"10": {
|
||||||
"key": "effPct",
|
"key": "effPct",
|
||||||
"base": 0.020736000733450055,
|
"base": 2.0736000733450055,
|
||||||
"step": 0.0025920008774846792
|
"step": 0.2592000877484679
|
||||||
},
|
},
|
||||||
"11": {
|
"11": {
|
||||||
"key": "effDef",
|
"key": "effDef",
|
||||||
"base": 0.020736000733450055,
|
"base": 2.0736000733450055,
|
||||||
"step": 0.0025920008774846792
|
"step": 0.2592000877484679
|
||||||
},
|
},
|
||||||
"12": {
|
"12": {
|
||||||
"key": "stance",
|
"key": "stance",
|
||||||
"base": 0.031104000052437186,
|
"base": 3.1104000052437186,
|
||||||
"step": 0.0038880009669810534
|
"step": 0.38880009669810534
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"main": {
|
"main": {
|
||||||
"1": {
|
"hpPlus": {
|
||||||
"key": "stance",
|
"id": "1",
|
||||||
"base": 0.08294400083832443,
|
"base": 90.31680000037886,
|
||||||
"step": 0.029029999626800418
|
"step": 31.610880001680925
|
||||||
},
|
},
|
||||||
"2": {
|
"atkPlus": {
|
||||||
"key": "recharge",
|
"id": "1",
|
||||||
"base": 0.024883000878617167,
|
"base": 45.158399999840185,
|
||||||
"step": 0.008708999957889318
|
"step": 15.805440000956878
|
||||||
},
|
},
|
||||||
"3": {
|
"hp": {
|
||||||
"key": "hpPct",
|
"id": "3",
|
||||||
"base": 0.05529600055888295,
|
"base": 5.529600055888295,
|
||||||
"step": 0.01935399998910725
|
"step": 1.9353999989107251
|
||||||
},
|
},
|
||||||
"4": {
|
"atk": {
|
||||||
"key": "atkPct",
|
"id": "4",
|
||||||
"base": 0.05529600055888295,
|
"base": 5.529600055888295,
|
||||||
"step": 0.01935399998910725
|
"step": 1.9353999989107251
|
||||||
},
|
},
|
||||||
"5": {
|
"def": {
|
||||||
"key": "defPct",
|
"id": "5",
|
||||||
"base": 0.0691199996508658,
|
"base": 6.911999965086579,
|
||||||
"step": 0.024192000506445765
|
"step": 2.4192000506445765
|
||||||
},
|
},
|
||||||
"6": {
|
"cpct": {
|
||||||
"key": "ice",
|
"id": "4",
|
||||||
"base": 0.04976600036025047,
|
"base": 4.147200076840818,
|
||||||
"step": 0.017417999915778637
|
"step": 1.4515000162646174
|
||||||
},
|
},
|
||||||
"7": {
|
"cdmg": {
|
||||||
"key": "elec",
|
"id": "5",
|
||||||
"base": 0.04976600036025047,
|
"base": 8.294400083832443,
|
||||||
"step": 0.017417999915778637
|
"step": 2.902999962680042
|
||||||
},
|
},
|
||||||
"8": {
|
"heal": {
|
||||||
"key": "wind",
|
"id": "6",
|
||||||
"base": 0.04976600036025047,
|
"base": 4.423700016923249,
|
||||||
"step": 0.017417999915778637
|
"step": 1.5483000548556447
|
||||||
},
|
},
|
||||||
"9": {
|
"effPct": {
|
||||||
"key": "quantum",
|
"id": "7",
|
||||||
"base": 0.04976600036025047,
|
"base": 5.529600055888295,
|
||||||
"step": 0.017417999915778637
|
"step": 1.9353999989107251
|
||||||
},
|
},
|
||||||
"10": {
|
"speed": {
|
||||||
"key": "imaginary",
|
"id": "4",
|
||||||
"base": 0.04976600036025047,
|
"base": 3.225600000238046,
|
||||||
"step": 0.017417999915778637
|
"step": 1.1000000000931323
|
||||||
|
},
|
||||||
|
"phy": {
|
||||||
|
"id": "4",
|
||||||
|
"base": 4.976600036025047,
|
||||||
|
"step": 1.7417999915778637
|
||||||
|
},
|
||||||
|
"fire": {
|
||||||
|
"id": "5",
|
||||||
|
"base": 4.976600036025047,
|
||||||
|
"step": 1.7417999915778637
|
||||||
|
},
|
||||||
|
"ice": {
|
||||||
|
"id": "6",
|
||||||
|
"base": 4.976600036025047,
|
||||||
|
"step": 1.7417999915778637
|
||||||
|
},
|
||||||
|
"elec": {
|
||||||
|
"id": "7",
|
||||||
|
"base": 4.976600036025047,
|
||||||
|
"step": 1.7417999915778637
|
||||||
|
},
|
||||||
|
"wind": {
|
||||||
|
"id": "8",
|
||||||
|
"base": 4.976600036025047,
|
||||||
|
"step": 1.7417999915778637
|
||||||
|
},
|
||||||
|
"quantum": {
|
||||||
|
"id": "9",
|
||||||
|
"base": 4.976600036025047,
|
||||||
|
"step": 1.7417999915778637
|
||||||
|
},
|
||||||
|
"imaginary": {
|
||||||
|
"id": "10",
|
||||||
|
"base": 4.976600036025047,
|
||||||
|
"step": 1.7417999915778637
|
||||||
|
},
|
||||||
|
"stance": {
|
||||||
|
"id": "1",
|
||||||
|
"base": 8.294400083832443,
|
||||||
|
"step": 2.902999962680042
|
||||||
|
},
|
||||||
|
"recharge": {
|
||||||
|
"id": "2",
|
||||||
|
"base": 2.4883000878617167,
|
||||||
|
"step": 0.8708999957889318
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sub": {
|
"sub": {
|
||||||
"1": {
|
"1": {
|
||||||
"key": "hp",
|
"key": "hpPlus",
|
||||||
"base": 27.09603099990636,
|
"base": 27.09603099990636,
|
||||||
"step": 3.3870039999019355
|
"step": 3.3870039999019355
|
||||||
},
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"key": "atk",
|
"key": "atkPlus",
|
||||||
"base": 13.548016000073403,
|
"base": 13.548016000073403,
|
||||||
"step": 1.693502000765875
|
"step": 1.693502000765875
|
||||||
},
|
},
|
||||||
"3": {
|
"3": {
|
||||||
"key": "def",
|
"key": "defPlus",
|
||||||
"base": 13.548016000073403,
|
"base": 13.548016000073403,
|
||||||
"step": 1.693502000765875
|
"step": 1.693502000765875
|
||||||
},
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"key": "hpPct",
|
"key": "hp",
|
||||||
"base": 0.027648000279441476,
|
"base": 2.7648000279441476,
|
||||||
"step": 0.0034560004714876413
|
"step": 0.34560004714876413
|
||||||
},
|
},
|
||||||
"5": {
|
"5": {
|
||||||
"key": "atkPct",
|
"key": "atk",
|
||||||
"base": 0.027648000279441476,
|
"base": 2.7648000279441476,
|
||||||
"step": 0.0034560004714876413
|
"step": 0.34560004714876413
|
||||||
},
|
},
|
||||||
"6": {
|
"6": {
|
||||||
"key": "defPct",
|
"key": "def",
|
||||||
"base": 0.03456000052392483,
|
"base": 3.4560000523924828,
|
||||||
"step": 0.0043200000654906034
|
"step": 0.43200000654906034
|
||||||
},
|
},
|
||||||
"7": {
|
"7": {
|
||||||
"key": "speed",
|
"key": "speed",
|
||||||
@ -365,114 +500,159 @@
|
|||||||
},
|
},
|
||||||
"8": {
|
"8": {
|
||||||
"key": "cpct",
|
"key": "cpct",
|
||||||
"base": 0.020736000733450055,
|
"base": 2.0736000733450055,
|
||||||
"step": 0.0025920008774846792
|
"step": 0.2592000877484679
|
||||||
},
|
},
|
||||||
"9": {
|
"9": {
|
||||||
"key": "cdmg",
|
"key": "cdmg",
|
||||||
"base": 0.04147200076840818,
|
"base": 4.147200076840818,
|
||||||
"step": 0.0051840003579854965
|
"step": 0.5184000357985497
|
||||||
},
|
},
|
||||||
"10": {
|
"10": {
|
||||||
"key": "effPct",
|
"key": "effPct",
|
||||||
"base": 0.027648000279441476,
|
"base": 2.7648000279441476,
|
||||||
"step": 0.0034560004714876413
|
"step": 0.34560004714876413
|
||||||
},
|
},
|
||||||
"11": {
|
"11": {
|
||||||
"key": "effDef",
|
"key": "effDef",
|
||||||
"base": 0.027648000279441476,
|
"base": 2.7648000279441476,
|
||||||
"step": 0.0034560004714876413
|
"step": 0.34560004714876413
|
||||||
},
|
},
|
||||||
"12": {
|
"12": {
|
||||||
"key": "stance",
|
"key": "stance",
|
||||||
"base": 0.04147200076840818,
|
"base": 4.147200076840818,
|
||||||
"step": 0.0051840003579854965
|
"step": 0.5184000357985497
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"5": {
|
"5": {
|
||||||
"main": {
|
"main": {
|
||||||
"1": {
|
"hpPlus": {
|
||||||
"key": "stance",
|
"id": "1",
|
||||||
"base": 0.10368000087328255,
|
"base": 112.89600000041537,
|
||||||
"step": 0.03628800041042268
|
"step": 39.513600000645965
|
||||||
},
|
},
|
||||||
"2": {
|
"atkPlus": {
|
||||||
"key": "recharge",
|
"id": "1",
|
||||||
"base": 0.031104000052437186,
|
"base": 56.44799999985844,
|
||||||
"step": 0.010886001167818904
|
"step": 19.756800000788644
|
||||||
},
|
},
|
||||||
"3": {
|
"hp": {
|
||||||
"key": "hpPct",
|
"id": "3",
|
||||||
"base": 0.0691199996508658,
|
"base": 6.911999965086579,
|
||||||
"step": 0.024192000506445765
|
"step": 2.4192000506445765
|
||||||
},
|
},
|
||||||
"4": {
|
"atk": {
|
||||||
"key": "atkPct",
|
"id": "4",
|
||||||
"base": 0.0691199996508658,
|
"base": 6.911999965086579,
|
||||||
"step": 0.024192000506445765
|
"step": 2.4192000506445765
|
||||||
},
|
},
|
||||||
"5": {
|
"def": {
|
||||||
"key": "defPct",
|
"id": "5",
|
||||||
"base": 0.08639999991282821,
|
"base": 8.63999999128282,
|
||||||
"step": 0.030240000458434224
|
"step": 3.0240000458434224
|
||||||
},
|
},
|
||||||
"6": {
|
"cpct": {
|
||||||
"key": "ice",
|
"id": "4",
|
||||||
"base": 0.06220800010487437,
|
"base": 5.184000078588724,
|
||||||
"step": 0.02177300094626844
|
"step": 1.8143999855965376
|
||||||
},
|
},
|
||||||
"7": {
|
"cdmg": {
|
||||||
"key": "elec",
|
"id": "5",
|
||||||
"base": 0.06220800010487437,
|
"base": 10.368000087328255,
|
||||||
"step": 0.02177300094626844
|
"step": 3.6288000410422683
|
||||||
},
|
},
|
||||||
"8": {
|
"heal": {
|
||||||
"key": "wind",
|
"id": "6",
|
||||||
"base": 0.06220800010487437,
|
"base": 5.529600055888295,
|
||||||
"step": 0.02177300094626844
|
"step": 1.9353999989107251
|
||||||
},
|
},
|
||||||
"9": {
|
"effPct": {
|
||||||
"key": "quantum",
|
"id": "7",
|
||||||
"base": 0.06220800010487437,
|
"base": 6.911999965086579,
|
||||||
"step": 0.02177300094626844
|
"step": 2.4192000506445765
|
||||||
},
|
},
|
||||||
"10": {
|
"speed": {
|
||||||
"key": "imaginary",
|
"id": "4",
|
||||||
"base": 0.06220800010487437,
|
"base": 4.031999999890104,
|
||||||
"step": 0.02177300094626844
|
"step": 1.400000000372529
|
||||||
|
},
|
||||||
|
"phy": {
|
||||||
|
"id": "4",
|
||||||
|
"base": 6.220800010487437,
|
||||||
|
"step": 2.177300094626844
|
||||||
|
},
|
||||||
|
"fire": {
|
||||||
|
"id": "5",
|
||||||
|
"base": 6.220800010487437,
|
||||||
|
"step": 2.177300094626844
|
||||||
|
},
|
||||||
|
"ice": {
|
||||||
|
"id": "6",
|
||||||
|
"base": 6.220800010487437,
|
||||||
|
"step": 2.177300094626844
|
||||||
|
},
|
||||||
|
"elec": {
|
||||||
|
"id": "7",
|
||||||
|
"base": 6.220800010487437,
|
||||||
|
"step": 2.177300094626844
|
||||||
|
},
|
||||||
|
"wind": {
|
||||||
|
"id": "8",
|
||||||
|
"base": 6.220800010487437,
|
||||||
|
"step": 2.177300094626844
|
||||||
|
},
|
||||||
|
"quantum": {
|
||||||
|
"id": "9",
|
||||||
|
"base": 6.220800010487437,
|
||||||
|
"step": 2.177300094626844
|
||||||
|
},
|
||||||
|
"imaginary": {
|
||||||
|
"id": "10",
|
||||||
|
"base": 6.220800010487437,
|
||||||
|
"step": 2.177300094626844
|
||||||
|
},
|
||||||
|
"stance": {
|
||||||
|
"id": "1",
|
||||||
|
"base": 10.368000087328255,
|
||||||
|
"step": 3.6288000410422683
|
||||||
|
},
|
||||||
|
"recharge": {
|
||||||
|
"id": "2",
|
||||||
|
"base": 3.1104000052437186,
|
||||||
|
"step": 1.0886001167818904
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sub": {
|
"sub": {
|
||||||
"1": {
|
"1": {
|
||||||
"key": "hp",
|
"key": "hpPlus",
|
||||||
"base": 33.870039001107216,
|
"base": 33.870039001107216,
|
||||||
"step": 4.23375500086695
|
"step": 4.23375500086695
|
||||||
},
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"key": "atk",
|
"key": "atkPlus",
|
||||||
"base": 16.935019000666216,
|
"base": 16.935019000666216,
|
||||||
"step": 2.1168770007789135
|
"step": 2.1168770007789135
|
||||||
},
|
},
|
||||||
"3": {
|
"3": {
|
||||||
"key": "def",
|
"key": "defPlus",
|
||||||
"base": 16.935019000666216,
|
"base": 16.935019000666216,
|
||||||
"step": 2.1168770007789135
|
"step": 2.1168770007789135
|
||||||
},
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"key": "hpPct",
|
"key": "hp",
|
||||||
"base": 0.03456000052392483,
|
"base": 3.4560000523924828,
|
||||||
"step": 0.0043200000654906034
|
"step": 0.43200000654906034
|
||||||
},
|
},
|
||||||
"5": {
|
"5": {
|
||||||
"key": "atkPct",
|
"key": "atk",
|
||||||
"base": 0.03456000052392483,
|
"base": 3.4560000523924828,
|
||||||
"step": 0.0043200000654906034
|
"step": 0.43200000654906034
|
||||||
},
|
},
|
||||||
"6": {
|
"6": {
|
||||||
"key": "defPct",
|
"key": "def",
|
||||||
"base": 0.043199999956414104,
|
"base": 4.31999999564141,
|
||||||
"step": 0.005399999907240272
|
"step": 0.5399999907240272
|
||||||
},
|
},
|
||||||
"7": {
|
"7": {
|
||||||
"key": "speed",
|
"key": "speed",
|
||||||
@ -481,28 +661,28 @@
|
|||||||
},
|
},
|
||||||
"8": {
|
"8": {
|
||||||
"key": "cpct",
|
"key": "cpct",
|
||||||
"base": 0.02592000039294362,
|
"base": 2.592000039294362,
|
||||||
"step": 0.0032400002237409353
|
"step": 0.32400002237409353
|
||||||
},
|
},
|
||||||
"9": {
|
"9": {
|
||||||
"key": "cdmg",
|
"key": "cdmg",
|
||||||
"base": 0.05184000078588724,
|
"base": 5.184000078588724,
|
||||||
"step": 0.006480000447481871
|
"step": 0.6480000447481871
|
||||||
},
|
},
|
||||||
"10": {
|
"10": {
|
||||||
"key": "effPct",
|
"key": "effPct",
|
||||||
"base": 0.03456000052392483,
|
"base": 3.4560000523924828,
|
||||||
"step": 0.0043200000654906034
|
"step": 0.43200000654906034
|
||||||
},
|
},
|
||||||
"11": {
|
"11": {
|
||||||
"key": "effDef",
|
"key": "effDef",
|
||||||
"base": 0.03456000052392483,
|
"base": 3.4560000523924828,
|
||||||
"step": 0.0043200000654906034
|
"step": 0.43200000654906034
|
||||||
},
|
},
|
||||||
"12": {
|
"12": {
|
||||||
"key": "stance",
|
"key": "stance",
|
||||||
"base": 0.05184000078588724,
|
"base": 5.184000078588724,
|
||||||
"step": 0.006480000447481871
|
"step": 0.6480000447481871
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Before Width: | Height: | Size: 831 KiB After Width: | Height: | Size: 554 KiB |
Before Width: | Height: | Size: 870 KiB After Width: | Height: | Size: 452 KiB |
Before Width: | Height: | Size: 855 KiB After Width: | Height: | Size: 534 KiB |
Before Width: | Height: | Size: 541 KiB After Width: | Height: | Size: 353 KiB |
Before Width: | Height: | Size: 476 KiB After Width: | Height: | Size: 270 KiB |
Before Width: | Height: | Size: 448 KiB After Width: | Height: | Size: 287 KiB |
Before Width: | Height: | Size: 707 KiB After Width: | Height: | Size: 358 KiB |
Before Width: | Height: | Size: 460 KiB After Width: | Height: | Size: 328 KiB |
Before Width: | Height: | Size: 690 KiB After Width: | Height: | Size: 408 KiB |
Before Width: | Height: | Size: 802 KiB After Width: | Height: | Size: 477 KiB |
Before Width: | Height: | Size: 639 KiB After Width: | Height: | Size: 382 KiB |
Before Width: | Height: | Size: 874 KiB After Width: | Height: | Size: 545 KiB |
Before Width: | Height: | Size: 621 KiB After Width: | Height: | Size: 348 KiB |
Before Width: | Height: | Size: 507 KiB After Width: | Height: | Size: 327 KiB |
Before Width: | Height: | Size: 517 KiB After Width: | Height: | Size: 338 KiB |
Before Width: | Height: | Size: 680 KiB After Width: | Height: | Size: 389 KiB |
Before Width: | Height: | Size: 634 KiB After Width: | Height: | Size: 410 KiB |
Before Width: | Height: | Size: 727 KiB After Width: | Height: | Size: 424 KiB |
Before Width: | Height: | Size: 656 KiB After Width: | Height: | Size: 416 KiB |
Before Width: | Height: | Size: 715 KiB After Width: | Height: | Size: 432 KiB |
Before Width: | Height: | Size: 585 KiB After Width: | Height: | Size: 438 KiB |
Before Width: | Height: | Size: 830 KiB After Width: | Height: | Size: 450 KiB |
Before Width: | Height: | Size: 742 KiB After Width: | Height: | Size: 369 KiB |
Before Width: | Height: | Size: 717 KiB After Width: | Height: | Size: 428 KiB |
Before Width: | Height: | Size: 533 KiB After Width: | Height: | Size: 343 KiB |