From a54b9c6bd4fcaf2427a06c60349de426aa24ff48 Mon Sep 17 00:00:00 2001 From: Kokomi <102026640+yoimiya-kokomi@users.noreply.github.com> Date: Mon, 13 Feb 2023 16:31:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E8=B0=83Enka=E4=B8=8B=E5=9C=A3?= =?UTF-8?q?=E9=81=97=E7=89=A9statsIds=E7=9A=84=E8=AE=A1=E7=AE=97=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 +- models/Artifact.js | 13 +- models/ProfileArtis.js | 8 +- models/player-lib/MiaoData.js | 1 + models/profile-lib/AttrCalc.js | 35 ++- resources/character/profile-list.html | 2 +- resources/meta/artifact/artis-mark.js | 6 +- resources/meta/artifact/meta.js | 437 +++++++++++++------------- 8 files changed, 260 insertions(+), 244 deletions(-) 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