diff --git a/CHANGELOG.md b/CHANGELOG.md
index 569c2508..31bca269 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,7 +4,7 @@
* 重写底层面板、角色数据获取与保存逻辑
* 底层完全兼容面板及Mys数据,对于miao-plugin的大部分场景可做到数据通用
* 角色数据及天赋增加缓存逻辑,有缓存数据情况下可在ck失效/验证码等情况下正常使用功能
- * 面板底层数据结构优化,Enka下使用propIds存储圣遗物数据
+ * 面板底层数据结构优化,Enka下使用statsIds存储圣遗物数据
* 初步增加`#角色`功能,查询并展示Mys角色信息,尚未完善
* Yunzai需要跟随游戏版本升级的功能会逐步在miao-plugin中提供,以保障对应功能相对长期可用
* 暂时默认关闭,如需开启可在`#喵喵设置`中启用
diff --git a/models/Artifact.js b/models/Artifact.js
index edcadd2f..3e4097bf 100644
--- a/models/Artifact.js
+++ b/models/Artifact.js
@@ -81,23 +81,20 @@ class Artifact extends Base {
if (!cfg) {
return true
}
- let { key, eff } = cfg
+ let { key, value } = cfg
if (!tmp[key]) {
tmp[key] = {
key,
eff: 0,
- upNum: 0
+ upNum: 0,
+ value: 0
}
ret.push(tmp[key])
}
- tmp[key].eff += eff
+ tmp[key].eff += value / attrMap[key].value * starEff[star]
+ tmp[key].value += value * (attrMap[key].format === 'pct' ? 100 : 1) * starEff[star]
tmp[key].upNum++
})
- lodash.forEach(tmp, (ds, key) => {
- if (attrMap[key]) {
- ds.value = attrMap[key].value * ds.eff * starEff[star]
- }
- })
return ret
}
}
diff --git a/models/ProfileArtis.js b/models/ProfileArtis.js
index 26e32ded..3f2ceb13 100644
--- a/models/ProfileArtis.js
+++ b/models/ProfileArtis.js
@@ -6,7 +6,7 @@ import AvatarArtis from './AvatarArtis.js'
import { Artifact, ArtifactSet, Character } from './index.js'
import { Format } from '../components/index.js'
import ArtisMark from './profile-lib/ArtisMark.js'
-import { attrMap, attrValue } from '../resources/meta/artifact/index.js'
+import { attrMap } from '../resources/meta/artifact/index.js'
import CharArtis from './profile-lib/CharArtis.js'
export default class ProfileArtis extends AvatarArtis {
@@ -42,13 +42,13 @@ export default class ProfileArtis extends AvatarArtis {
...attr,
weight,
fixWeight: weight,
- mark: weight / attrValue[key]
+ mark: weight / attr.value
}
if (!k) {
- ret.mark = weight / attrValue[key]
+ ret.mark = weight / attr.value
} else {
let plus = k === 'atk' ? 520 : 0
- ret.mark = weight / attrValue[k] / (baseAttr[k] + plus) * 100
+ ret.mark = weight / attrMap[k].value / (baseAttr[k] + plus) * 100
ret.fixWeight = weight * attr.value / attrMap[k].value / (baseAttr[k] + plus) * 100
}
attrs[key] = ret
diff --git a/models/player-lib/MiaoData.js b/models/player-lib/MiaoData.js
index bcca2512..c43fdc49 100644
--- a/models/player-lib/MiaoData.js
+++ b/models/player-lib/MiaoData.js
@@ -11,6 +11,7 @@ let MiaoData = {
avatar.setAvatar({
level: ds.level,
cons: ds.constellationNum || 0,
+ promote: ds.promoteLevel,
fetter: ds.fetterLevel,
costume: char.checkCostume(ds.costumeID) ? ds.costumeID : 0,
elem: talentRet.elem,
diff --git a/models/profile-lib/AttrCalc.js b/models/profile-lib/AttrCalc.js
index 00bc2079..6fb38904 100644
--- a/models/profile-lib/AttrCalc.js
+++ b/models/profile-lib/AttrCalc.js
@@ -24,6 +24,24 @@ class AttrCalc {
return new AttrCalc(profile)
}
+ static calcPromote (lv) {
+ if (lv === 20) {
+ return 1
+ }
+ if (lv === 90) {
+ return 6
+ }
+ let lvs = [1, 20, 40, 50, 60, 70, 80, 90]
+ let promote = 0
+ for (let idx = 0; idx < lvs.length - 1; idx++) {
+ if (lv >= lvs[idx] && lv <= lvs[idx + 1]) {
+ return promote
+ }
+ promote++
+ }
+ return promote
+ }
+
/**
* 面板属性计算
* @returns {{}}
@@ -196,23 +214,6 @@ class AttrCalc {
}
this.attr.addAttr(key, ds.value * 1)
}
-
- static calcPromote (lv) {
- if (lv === 20) {
- return 1
- }
- if (lv === 90) {
- return 6
- }
- let lvs = [1, 20, 40, 50, 60, 70, 80, 90]
- let promote = 0
- for (let idx = 0; idx < lvs.length - 1; idx++) {
- if (lv >= lvs[idx] && lv <= lvs[idx + 1]) {
- return promote
- }
- promote++
- }
- }
}
export default AttrCalc
diff --git a/resources/character/profile-list.html b/resources/character/profile-list.html
index 57586e9b..1a6a687b 100644
--- a/resources/character/profile-list.html
+++ b/resources/character/profile-list.html
@@ -43,7 +43,7 @@
{{char.abbr}}{{char.cons}}
{{if char.groupRank}}
{{set gr = char.groupRank}}
- {{set rank = gr.rank >= 15 ? 10:(gr.rank <=3 ? gr.rank : 4)}}
+ {{set rank = gr.rank >= (rankCfg.number || 15) ? 10:(gr.rank <=3 ? gr.rank : 4)}}
{{gr.rank}}
diff --git a/resources/meta/artifact/artis-mark.js b/resources/meta/artifact/artis-mark.js
index d7f7ea0e..e88ed1ec 100644
--- a/resources/meta/artifact/artis-mark.js
+++ b/resources/meta/artifact/artis-mark.js
@@ -1,3 +1,7 @@
+/**
+ * 角色的默认评分规则
+ * 如character/${name}/artis.js下有角色自定义规则优先使用自定义
+ */
export const usefulAttr = {
神里绫人: { hp: 50, atk: 75, def: 0, cpct: 100, cdmg: 100, mastery: 0, dmg: 100, phy: 0, recharge: 30, heal: 0 },
八重神子: { hp: 0, atk: 75, def: 0, cpct: 100, cdmg: 100, mastery: 75, dmg: 100, phy: 0, recharge: 55, heal: 0 },
@@ -59,6 +63,6 @@ export const usefulAttr = {
莱依拉: { hp: 100, atk: 75, def: 0, cpct: 100, cdmg: 100, mastery: 0, dmg: 100, phy: 0, recharge: 35 },
流浪者: { hp: 0, atk: 80, def: 0, cpct: 100, cdmg: 100, mastery: 0, dmg: 100, phy: 0, recharge: 35, heal: 0 },
珐露珊: { hp: 0, atk: 75, def: 0, cpct: 100, cdmg: 100, mastery: 0, dmg: 75, phy: 0, recharge: 75, heal: 0 },
- 瑶瑶: { hp: 100, atk: 75, def: 0, cpct: 100, cdmg: 100, mastery: 0, dmg: 100, phy: 0, recharge: 75, heal: 100 },
+ 瑶瑶: { hp: 100, atk: 75, def: 0, cpct: 100, cdmg: 100, mastery: 75, dmg: 100, phy: 0, recharge: 75, heal: 100 },
艾尔海森: { hp: 0, atk: 75, def: 0, cpct: 100, cdmg: 100, mastery: 100, dmg: 100, phy: 0, recharge: 35, heal: 0 }
}
diff --git a/resources/meta/artifact/meta.js b/resources/meta/artifact/meta.js
index 2a4f4cff..93d6ff86 100644
--- a/resources/meta/artifact/meta.js
+++ b/resources/meta/artifact/meta.js
@@ -1,3 +1,6 @@
+import lodash from 'lodash'
+import { Format } from '../../../components/index.js'
+
export const abbr = {
炽烈的炎之魔女: '魔女',
昔日宗室之仪: '宗室',
@@ -40,36 +43,42 @@ export const abbr = {
乐园遗落之花: '乐园'
}
-export const attrValue = {
- cpct: 3.89,
- cdmg: 7.77,
- mastery: 23.31,
- atk: 5.83,
- hp: 5.83,
- def: 7.29,
- recharge: 6.48,
- dmg: 5.825,
- phy: 7.288,
- heal: 4.487
+export const mainAttr = {
+ 3: 'atk,def,hp,mastery,recharge'.split(','),
+ 4: 'atk,def,hp,mastery,dmg,phy'.split(','),
+ 5: 'atk,def,hp,mastery,heal,cpct,cdmg'.split(',')
}
+export const subAttr = 'atk,atkPlus,def,defPlus,hp,hpPlus,mastery,recharge,cpct,cdmg'.split(',')
+
+/**
+ * 圣遗物词条配置
+ * @[]value 副词条单次提升值(最大档位)
+ * @[]valueMin 副词条单次提升最小值
+ * @[]calc 伤害计算时变更的字段type
+ * @[]type 词条的类型 normal:普通字段 plus:小词条
+ * @[]base 词条类型为小词条时,对应的大词条
+ * @[]text 展示文字
+ */
export const attrMap = {
- atk: { title: '大攻击', format: 'pct', calc: 'pct', type: 'normal', value: 5.83, text: '5.83%', valueMin: 4.08 },
- atkPlus: { title: '小攻击', format: 'comma', type: 'plus', base: 'atk', value: 19.45, valueMin: 13.62 },
- def: { title: '大防御', format: 'pct', calc: 'pct', type: 'normal', value: 7.2875, text: '7.29%', valueMin: 5.1 },
- defPlus: { title: '小防御', format: 'comma', type: 'plus', base: 'def', value: 23.15, valueMin: 16.2 },
- hp: { title: '大生命', format: 'pct', calc: 'pct', type: 'normal', value: 5.83, text: '5.83%', valueMin: 4.08 },
- hpPlus: { title: '小生命', format: 'comma', type: 'plus', base: 'hp', value: 298.75, valueMin: 209.13 },
- cpct: { title: '暴击率', format: 'pct', calc: 'plus', type: 'normal', value: 3.889, text: '3.89%', valueMin: 2.72 },
- cdmg: { title: '暴击伤害', format: 'pct', calc: 'plus', type: 'normal', value: 7.778, text: '7.77%', valueMin: 5.44 },
- mastery: { title: '元素精通', format: 'comma', calc: 'plus', type: 'normal', value: 23.3125, text: '23.31', valueMin: 16.32 },
- recharge: { title: '充能效率', format: 'pct', calc: 'plus', type: 'normal', value: 6.48, text: '6.48%', valueMin: 4.53 },
- dmg: { title: '元素伤害', format: 'pct', type: 'normal', value: 5.83, text: '5.83%' },
- phy: { title: '物伤加成', format: 'pct', type: 'normal', value: 7.288, text: '7.29%' },
- heal: { title: '治疗加成', format: 'pct', type: 'normal', value: 4.487, text: '4.49%' }
+ atk: { title: '大攻击', format: 'pct', calc: 'pct' },
+ atkPlus: { title: '小攻击', format: 'comma' },
+ def: { title: '大防御', format: 'pct', calc: 'pct' },
+ defPlus: { title: '小防御', format: 'comma' },
+ hp: { title: '大生命', format: 'pct', calc: 'pct' },
+ hpPlus: { title: '小生命', format: 'comma' },
+ cpct: { title: '暴击率', format: 'pct', calc: 'plus' },
+ cdmg: { title: '暴击伤害', format: 'pct', calc: 'plus' },
+ mastery: { title: '元素精通', format: 'comma', calc: 'plus' },
+ recharge: { title: '充能效率', format: 'pct', calc: 'plus' },
+ dmg: { title: '元素伤害', format: 'pct' },
+ phy: { title: '物伤加成', format: 'pct' },
+ heal: { title: '治疗加成', format: 'pct' }
}
-let basicNum = 3.886449
-let attrPct = {
+
+// const basicNum = 23.312 / 6
+const basicNum = 3.885
+const attrPct = {
atk: 1.5,
atkPlus: 5,
def: 1.875,
@@ -86,24 +95,27 @@ let attrPct = {
}
let anMap = {}
-for (let attr in attrMap) {
- anMap[attrMap[attr].title] = attr
- if (attrPct[attr]) {
- attrMap[attr].value = basicNum * attrPct[attr]
- attrMap[attr].valueMin = basicNum * attrPct[attr] * 0.7
- }
-}
+lodash.forEach(attrMap, (attr, key) => {
+ anMap[attr.title] = key
+ if (attrPct[key]) {
+ // 设置value
+ attr.value = basicNum * attrPct[key]
+ // 设置valueMin
+ if (subAttr.includes(key)) {
+ attr.valueMin = basicNum * attrPct[key] * 0.7
+ }
+ // 设置type
+ attr.base = { hpPlus: 'hp', atkPlus: 'atk', defPlus: 'def' }[key]
+ attr.type = attr.base ? 'plus' : 'normal'
+
+ // 设置展示文字
+ attr.text = Format[attr.format](attr.value, 2)
+ }
+})
export const attrNameMap = anMap
-export const mainAttr = {
- 3: 'atk,def,hp,mastery,recharge'.split(','),
- 4: 'atk,def,hp,mastery,dmg,phy'.split(','),
- 5: 'atk,def,hp,mastery,heal,cpct,cdmg'.split(',')
-}
-
-export const subAttr = 'atk,atkPlus,def,defPlus,hp,hpPlus,mastery,recharge,cpct,cdmg'.split(',')
-
+// ids映射关系
export const mainIdMap = {
10001: 'hpPlus',
10002: 'hp',
@@ -165,175 +177,176 @@ export const mainIdMap = {
50890: 'phy',
50880: 'mastery'
}
+
export const attrIdMap = {
- 101021: { key: 'hpPlus', eff: 0.8 },
- 101022: { key: 'hpPlus', eff: 1 },
- 101031: { key: 'hp', eff: 0.8 },
- 101032: { key: 'hp', eff: 1 },
- 101051: { key: 'atkPlus', eff: 0.8 },
- 101052: { key: 'atkPlus', eff: 1 },
- 101061: { key: 'atk', eff: 0.8 },
- 101062: { key: 'atk', eff: 1 },
- 101081: { key: 'defPlus', eff: 0.8 },
- 101082: { key: 'defPlus', eff: 1 },
- 101091: { key: 'def', eff: 0.8 },
- 101092: { key: 'def', eff: 1 },
- 101201: { key: 'cpct', eff: 0.8 },
- 101202: { key: 'cpct', eff: 1 },
- 101221: { key: 'cdmg', eff: 0.8 },
- 101222: { key: 'cdmg', eff: 1 },
- 101231: { key: 'recharge', eff: 0.8 },
- 101232: { key: 'recharge', eff: 1 },
- 101241: { key: 'mastery', eff: 0.8 },
- 101242: { key: 'mastery', eff: 1 },
- 201021: { key: 'hpPlus', eff: 0.7 },
- 201022: { key: 'hpPlus', eff: 0.85 },
- 201023: { key: 'hpPlus', eff: 1 },
- 201031: { key: 'hp', eff: 0.7 },
- 201032: { key: 'hp', eff: 0.85 },
- 201033: { key: 'hp', eff: 1 },
- 201051: { key: 'atkPlus', eff: 0.7 },
- 201052: { key: 'atkPlus', eff: 0.85 },
- 201053: { key: 'atkPlus', eff: 1 },
- 201061: { key: 'atk', eff: 0.7 },
- 201062: { key: 'atk', eff: 0.85 },
- 201063: { key: 'atk', eff: 1 },
- 201081: { key: 'defPlus', eff: 0.7 },
- 201082: { key: 'defPlus', eff: 0.85 },
- 201083: { key: 'defPlus', eff: 1 },
- 201091: { key: 'def', eff: 0.7 },
- 201092: { key: 'def', eff: 0.85 },
- 201093: { key: 'def', eff: 1 },
- 201201: { key: 'cpct', eff: 0.7 },
- 201202: { key: 'cpct', eff: 0.85 },
- 201203: { key: 'cpct', eff: 1 },
- 201221: { key: 'cdmg', eff: 0.7 },
- 201222: { key: 'cdmg', eff: 0.85 },
- 201223: { key: 'cdmg', eff: 1 },
- 201231: { key: 'recharge', eff: 0.7 },
- 201232: { key: 'recharge', eff: 0.85 },
- 201233: { key: 'recharge', eff: 1 },
- 201241: { key: 'mastery', eff: 0.7 },
- 201242: { key: 'mastery', eff: 0.85 },
- 201243: { key: 'mastery', eff: 1 },
- 301021: { key: 'hpPlus', eff: 0.7 },
- 301022: { key: 'hpPlus', eff: 0.8 },
- 301023: { key: 'hpPlus', eff: 0.9 },
- 301024: { key: 'hpPlus', eff: 1 },
- 301031: { key: 'hp', eff: 0.7 },
- 301032: { key: 'hp', eff: 0.8 },
- 301033: { key: 'hp', eff: 0.9 },
- 301034: { key: 'hp', eff: 1 },
- 301051: { key: 'atkPlus', eff: 0.7 },
- 301052: { key: 'atkPlus', eff: 0.8 },
- 301053: { key: 'atkPlus', eff: 0.9 },
- 301054: { key: 'atkPlus', eff: 1 },
- 301061: { key: 'atk', eff: 0.7 },
- 301062: { key: 'atk', eff: 0.8 },
- 301063: { key: 'atk', eff: 0.9 },
- 301064: { key: 'atk', eff: 1 },
- 301081: { key: 'defPlus', eff: 0.7 },
- 301082: { key: 'defPlus', eff: 0.8 },
- 301083: { key: 'defPlus', eff: 0.9 },
- 301084: { key: 'defPlus', eff: 1 },
- 301091: { key: 'def', eff: 0.7 },
- 301092: { key: 'def', eff: 0.8 },
- 301093: { key: 'def', eff: 0.9 },
- 301094: { key: 'def', eff: 1 },
- 301201: { key: 'cpct', eff: 0.7 },
- 301202: { key: 'cpct', eff: 0.8 },
- 301203: { key: 'cpct', eff: 0.9 },
- 301204: { key: 'cpct', eff: 1 },
- 301221: { key: 'cdmg', eff: 0.7 },
- 301222: { key: 'cdmg', eff: 0.8 },
- 301223: { key: 'cdmg', eff: 0.9 },
- 301224: { key: 'cdmg', eff: 1 },
- 301231: { key: 'recharge', eff: 0.7 },
- 301232: { key: 'recharge', eff: 0.8 },
- 301233: { key: 'recharge', eff: 0.9 },
- 301234: { key: 'recharge', eff: 1 },
- 301241: { key: 'mastery', eff: 0.7 },
- 301242: { key: 'mastery', eff: 0.8 },
- 301243: { key: 'mastery', eff: 0.9 },
- 301244: { key: 'mastery', eff: 1 },
- 401021: { key: 'hpPlus', eff: 0.7 },
- 401022: { key: 'hpPlus', eff: 0.8 },
- 401023: { key: 'hpPlus', eff: 0.9 },
- 401024: { key: 'hpPlus', eff: 1 },
- 401031: { key: 'hp', eff: 0.7 },
- 401032: { key: 'hp', eff: 0.8 },
- 401033: { key: 'hp', eff: 0.9 },
- 401034: { key: 'hp', eff: 1 },
- 401051: { key: 'atkPlus', eff: 0.7 },
- 401052: { key: 'atkPlus', eff: 0.8 },
- 401053: { key: 'atkPlus', eff: 0.9 },
- 401054: { key: 'atkPlus', eff: 1 },
- 401061: { key: 'atk', eff: 0.7 },
- 401062: { key: 'atk', eff: 0.8 },
- 401063: { key: 'atk', eff: 0.9 },
- 401064: { key: 'atk', eff: 1 },
- 401081: { key: 'defPlus', eff: 0.7 },
- 401082: { key: 'defPlus', eff: 0.8 },
- 401083: { key: 'defPlus', eff: 0.9 },
- 401084: { key: 'defPlus', eff: 1 },
- 401091: { key: 'def', eff: 0.7 },
- 401092: { key: 'def', eff: 0.8 },
- 401093: { key: 'def', eff: 0.9 },
- 401094: { key: 'def', eff: 1 },
- 401201: { key: 'cpct', eff: 0.7 },
- 401202: { key: 'cpct', eff: 0.8 },
- 401203: { key: 'cpct', eff: 0.9 },
- 401204: { key: 'cpct', eff: 1 },
- 401221: { key: 'cdmg', eff: 0.7 },
- 401222: { key: 'cdmg', eff: 0.8 },
- 401223: { key: 'cdmg', eff: 0.9 },
- 401224: { key: 'cdmg', eff: 1 },
- 401231: { key: 'recharge', eff: 0.7 },
- 401232: { key: 'recharge', eff: 0.8 },
- 401233: { key: 'recharge', eff: 0.9 },
- 401234: { key: 'recharge', eff: 1 },
- 401241: { key: 'mastery', eff: 0.7 },
- 401242: { key: 'mastery', eff: 0.8 },
- 401243: { key: 'mastery', eff: 0.9 },
- 401244: { key: 'mastery', eff: 1 },
- 501021: { key: 'hpPlus', eff: 0.7 },
- 501022: { key: 'hpPlus', eff: 0.8 },
- 501023: { key: 'hpPlus', eff: 0.9 },
- 501024: { key: 'hpPlus', eff: 1 },
- 501031: { key: 'hp', eff: 0.7 },
- 501032: { key: 'hp', eff: 0.8 },
- 501033: { key: 'hp', eff: 0.9 },
- 501034: { key: 'hp', eff: 1 },
- 501051: { key: 'atkPlus', eff: 0.7 },
- 501052: { key: 'atkPlus', eff: 0.8 },
- 501053: { key: 'atkPlus', eff: 0.9 },
- 501054: { key: 'atkPlus', eff: 1 },
- 501061: { key: 'atk', eff: 0.7 },
- 501062: { key: 'atk', eff: 0.8 },
- 501063: { key: 'atk', eff: 0.9 },
- 501064: { key: 'atk', eff: 1 },
- 501081: { key: 'defPlus', eff: 0.7 },
- 501082: { key: 'defPlus', eff: 0.8 },
- 501083: { key: 'defPlus', eff: 0.9 },
- 501084: { key: 'defPlus', eff: 1 },
- 501091: { key: 'def', eff: 0.7 },
- 501092: { key: 'def', eff: 0.8 },
- 501093: { key: 'def', eff: 0.9 },
- 501094: { key: 'def', eff: 1 },
- 501201: { key: 'cpct', eff: 0.7 },
- 501202: { key: 'cpct', eff: 0.8 },
- 501203: { key: 'cpct', eff: 0.9 },
- 501204: { key: 'cpct', eff: 1 },
- 501221: { key: 'cdmg', eff: 0.7 },
- 501222: { key: 'cdmg', eff: 0.8 },
- 501223: { key: 'cdmg', eff: 0.9 },
- 501224: { key: 'cdmg', eff: 1 },
- 501231: { key: 'recharge', eff: 0.7 },
- 501232: { key: 'recharge', eff: 0.8 },
- 501233: { key: 'recharge', eff: 0.9 },
- 501234: { key: 'recharge', eff: 1 },
- 501241: { key: 'mastery', eff: 0.7 },
- 501242: { key: 'mastery', eff: 0.8 },
- 501243: { key: 'mastery', eff: 0.9 },
- 501244: { key: 'mastery', eff: 1 }
-}
+ 101021: { key: 'hpPlus', value: 23.899999618530273 },
+ 101022: { key: 'hpPlus', value: 29.8799991607666 },
+ 201021: { key: 'hpPlus', value: 50.189998626708984 },
+ 201022: { key: 'hpPlus', value: 60.95000076293945 },
+ 201023: { key: 'hpPlus', value: 71.69999694824219 },
+ 301021: { key: 'hpPlus', value: 100.37999725341797 },
+ 301022: { key: 'hpPlus', value: 114.7200012207031 },
+ 301023: { key: 'hpPlus', value: 129.05999755859375 },
+ 301024: { key: 'hpPlus', value: 143.39999389648438 },
+ 401021: { key: 'hpPlus', value: 167.3000030517578 },
+ 401022: { key: 'hpPlus', value: 191.1999969482422 },
+ 401023: { key: 'hpPlus', value: 215.1000061035156 },
+ 401024: { key: 'hpPlus', value: 239.0 },
+ 501021: { key: 'hpPlus', value: 209.1300048828125 },
+ 501022: { key: 'hpPlus', value: 239.0 },
+ 501023: { key: 'hpPlus', value: 268.8800048828125 },
+ 501024: { key: 'hpPlus', value: 298.75 },
+ 101031: { key: 'hp', value: 0.011699999682605267 },
+ 101032: { key: 'hp', value: 0.014600000344216824 },
+ 201031: { key: 'hp', value: 0.016300000250339508 },
+ 201032: { key: 'hp', value: 0.01979999989271164 },
+ 201033: { key: 'hp', value: 0.02329999953508377 },
+ 301031: { key: 'hp', value: 0.02449999935925007 },
+ 301032: { key: 'hp', value: 0.02800000086426735 },
+ 301033: { key: 'hp', value: 0.03150000050663948 },
+ 301034: { key: 'hp', value: 0.03500000014901161 },
+ 401031: { key: 'hp', value: 0.032600000500679016 },
+ 401032: { key: 'hp', value: 0.037300001829862595 },
+ 401033: { key: 'hp', value: 0.041999999433755875 },
+ 401034: { key: 'hp', value: 0.04659999907016754 },
+ 501031: { key: 'hp', value: 0.040800001472234726 },
+ 501032: { key: 'hp', value: 0.04659999907016754 },
+ 501033: { key: 'hp', value: 0.05249999836087227 },
+ 501034: { key: 'hp', value: 0.05829999968409538 },
+ 101051: { key: 'atkPlus', value: 1.559999942779541 },
+ 101052: { key: 'atkPlus', value: 1.9500000476837158 },
+ 201051: { key: 'atkPlus', value: 3.2699999809265137 },
+ 201052: { key: 'atkPlus', value: 3.9700000286102295 },
+ 201053: { key: 'atkPlus', value: 4.670000076293945 },
+ 301051: { key: 'atkPlus', value: 6.539999961853027 },
+ 301052: { key: 'atkPlus', value: 7.46999979019165 },
+ 301053: { key: 'atkPlus', value: 8.399999618530273 },
+ 301054: { key: 'atkPlus', value: 9.34000015258789 },
+ 401051: { key: 'atkPlus', value: 10.890000343322754 },
+ 401052: { key: 'atkPlus', value: 12.449999809265137 },
+ 401053: { key: 'atkPlus', value: 14.0 },
+ 401054: { key: 'atkPlus', value: 15.5600004196167 },
+ 501051: { key: 'atkPlus', value: 13.619999885559082 },
+ 501052: { key: 'atkPlus', value: 15.5600004196167 },
+ 501053: { key: 'atkPlus', value: 17.510000228881836 },
+ 501054: { key: 'atkPlus', value: 19.450000762939453 },
+ 101061: { key: 'atk', value: 0.011699999682605267 },
+ 101062: { key: 'atk', value: 0.014600000344216824 },
+ 201061: { key: 'atk', value: 0.016300000250339508 },
+ 201062: { key: 'atk', value: 0.01979999989271164 },
+ 201063: { key: 'atk', value: 0.02329999953508377 },
+ 301061: { key: 'atk', value: 0.02449999935925007 },
+ 301062: { key: 'atk', value: 0.02800000086426735 },
+ 301063: { key: 'atk', value: 0.03150000050663948 },
+ 301064: { key: 'atk', value: 0.03500000014901161 },
+ 401061: { key: 'atk', value: 0.032600000500679016 },
+ 401062: { key: 'atk', value: 0.037300001829862595 },
+ 401063: { key: 'atk', value: 0.041999999433755875 },
+ 401064: { key: 'atk', value: 0.04659999907016754 },
+ 501061: { key: 'atk', value: 0.040800001472234726 },
+ 501062: { key: 'atk', value: 0.04659999907016754 },
+ 501063: { key: 'atk', value: 0.05249999836087227 },
+ 501064: { key: 'atk', value: 0.05829999968409538 },
+ 101081: { key: 'defPlus', value: 1.850000023841858 },
+ 101082: { key: 'defPlus', value: 2.309999942779541 },
+ 201081: { key: 'defPlus', value: 3.890000104904175 },
+ 201082: { key: 'defPlus', value: 4.71999979019165 },
+ 201083: { key: 'defPlus', value: 5.559999942779541 },
+ 301081: { key: 'defPlus', value: 7.78000020980835 },
+ 301082: { key: 'defPlus', value: 8.890000343322754 },
+ 301083: { key: 'defPlus', value: 10.0 },
+ 301084: { key: 'defPlus', value: 11.109999656677246 },
+ 401081: { key: 'defPlus', value: 12.960000038146973 },
+ 401082: { key: 'defPlus', value: 14.819999694824219 },
+ 401083: { key: 'defPlus', value: 16.670000076293945 },
+ 401084: { key: 'defPlus', value: 18.520000457763672 },
+ 501081: { key: 'defPlus', value: 16.200000762939453 },
+ 501082: { key: 'defPlus', value: 18.520000457763672 },
+ 501083: { key: 'defPlus', value: 20.829999923706055 },
+ 501084: { key: 'defPlus', value: 23.149999618530273 },
+ 101091: { key: 'def', value: 0.014600000344216824 },
+ 101092: { key: 'def', value: 0.018200000748038292 },
+ 201091: { key: 'def', value: 0.020400000736117363 },
+ 201092: { key: 'def', value: 0.024800000712275505 },
+ 201093: { key: 'def', value: 0.029100000858306885 },
+ 301091: { key: 'def', value: 0.03060000017285347 },
+ 301092: { key: 'def', value: 0.03500000014901161 },
+ 301093: { key: 'def', value: 0.03929999843239784 },
+ 301094: { key: 'def', value: 0.043699998408555984 },
+ 401091: { key: 'def', value: 0.040800001472234726 },
+ 401092: { key: 'def', value: 0.04659999907016754 },
+ 401093: { key: 'def', value: 0.05249999836087227 },
+ 401094: { key: 'def', value: 0.05829999968409538 },
+ 501091: { key: 'def', value: 0.050999999046325684 },
+ 501092: { key: 'def', value: 0.05829999968409538 },
+ 501093: { key: 'def', value: 0.06560000032186508 },
+ 501094: { key: 'def', value: 0.07289999723434448 },
+ 101231: { key: 'recharge', value: 0.013000000268220901 },
+ 101232: { key: 'recharge', value: 0.016200000420212746 },
+ 201231: { key: 'recharge', value: 0.01810000091791153 },
+ 201232: { key: 'recharge', value: 0.02199999988079071 },
+ 201233: { key: 'recharge', value: 0.02590000070631504 },
+ 301231: { key: 'recharge', value: 0.0272000003606081 },
+ 301232: { key: 'recharge', value: 0.031099999323487282 },
+ 301233: { key: 'recharge', value: 0.03500000014901161 },
+ 301234: { key: 'recharge', value: 0.03889999911189079 },
+ 401231: { key: 'recharge', value: 0.03629999980330467 },
+ 401232: { key: 'recharge', value: 0.0414000004529953 },
+ 401233: { key: 'recharge', value: 0.04659999907016754 },
+ 401234: { key: 'recharge', value: 0.05180000141263008 },
+ 501231: { key: 'recharge', value: 0.04529999941587448 },
+ 501232: { key: 'recharge', value: 0.05180000141263008 },
+ 501233: { key: 'recharge', value: 0.05829999968409538 },
+ 501234: { key: 'recharge', value: 0.06480000168085098 },
+ 101241: { key: 'mastery', value: 4.659999847412109 },
+ 101242: { key: 'mastery', value: 5.829999923706055 },
+ 201241: { key: 'mastery', value: 6.53000020980835 },
+ 201242: { key: 'mastery', value: 7.929999828338623 },
+ 201243: { key: 'mastery', value: 9.329999923706055 },
+ 301241: { key: 'mastery', value: 9.789999961853027 },
+ 301242: { key: 'mastery', value: 11.1899995803833 },
+ 301243: { key: 'mastery', value: 12.59000015258789 },
+ 301244: { key: 'mastery', value: 13.989999771118164 },
+ 401241: { key: 'mastery', value: 13.0600004196167 },
+ 401242: { key: 'mastery', value: 14.920000076293945 },
+ 401243: { key: 'mastery', value: 16.790000915527344 },
+ 401244: { key: 'mastery', value: 18.649999618530273 },
+ 501241: { key: 'mastery', value: 16.31999969482422 },
+ 501242: { key: 'mastery', value: 18.649999618530273 },
+ 501243: { key: 'mastery', value: 20.979999542236328 },
+ 501244: { key: 'mastery', value: 23.309999465942383 },
+ 101201: { key: 'cpct', value: 0.007799999788403511 },
+ 101202: { key: 'cpct', value: 0.009700000286102295 },
+ 201201: { key: 'cpct', value: 0.010900000110268593 },
+ 201202: { key: 'cpct', value: 0.013199999928474426 },
+ 201203: { key: 'cpct', value: 0.01549999974668026 },
+ 301201: { key: 'cpct', value: 0.016300000250339508 },
+ 301202: { key: 'cpct', value: 0.01860000006854534 },
+ 301203: { key: 'cpct', value: 0.020999999716877937 },
+ 301204: { key: 'cpct', value: 0.02329999953508377 },
+ 401201: { key: 'cpct', value: 0.021800000220537186 },
+ 401202: { key: 'cpct', value: 0.024900000542402267 },
+ 401203: { key: 'cpct', value: 0.02800000086426735 },
+ 401204: { key: 'cpct', value: 0.031099999323487282 },
+ 501201: { key: 'cpct', value: 0.0272000003606081 },
+ 501202: { key: 'cpct', value: 0.031099999323487282 },
+ 501203: { key: 'cpct', value: 0.03500000014901161 },
+ 501204: { key: 'cpct', value: 0.03889999911189079 },
+ 101221: { key: 'cdmg', value: 0.01549999974668026 },
+ 101222: { key: 'cdmg', value: 0.01940000057220459 },
+ 201221: { key: 'cdmg', value: 0.021800000220537186 },
+ 201222: { key: 'cdmg', value: 0.026399999856948853 },
+ 201223: { key: 'cdmg', value: 0.031099999323487282 },
+ 301221: { key: 'cdmg', value: 0.032600000500679016 },
+ 301222: { key: 'cdmg', value: 0.037300001829862595 },
+ 301223: { key: 'cdmg', value: 0.041999999433755875 },
+ 301224: { key: 'cdmg', value: 0.04659999907016754 },
+ 401221: { key: 'cdmg', value: 0.04349999874830246 },
+ 401222: { key: 'cdmg', value: 0.04969999939203262 },
+ 401223: { key: 'cdmg', value: 0.0560000017285347 },
+ 401224: { key: 'cdmg', value: 0.062199998646974564 },
+ 501221: { key: 'cdmg', value: 0.0544000007212162 },
+ 501222: { key: 'cdmg', value: 0.062199998646974564 },
+ 501223: { key: 'cdmg', value: 0.06989999860525131 },
+ 501224: { key: 'cdmg', value: 0.07769999653100967 }
+}
\ No newline at end of file