From 0292db43501328a43e7e23a4c07695d6e69eba7d Mon Sep 17 00:00:00 2001
From: Kokomi <102026640+yoimiya-kokomi@users.noreply.github.com>
Date: Sun, 12 Feb 2023 19:56:47 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96Enka=E4=B8=8B=E5=AF=B9?=
=?UTF-8?q?=E5=9C=A3=E9=81=97=E7=89=A9=E8=AF=8D=E6=9D=A1PropIds=E7=9A=84?=
=?UTF-8?q?=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91=EF=BC=8C=E4=BD=BF=E5=B1=9E?=
=?UTF-8?q?=E6=80=A7=E8=AE=A1=E7=AE=97=E6=9B=B4=E5=87=86=E7=A1=AE=20?=
=?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86=E6=83=85=E5=86=B5=E4=B8=8B?=
=?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E9=9D=A2=E6=9D=BF=E5=9B=BE=E4=B8=8D?=
=?UTF-8?q?=E5=B1=95=E7=A4=BA=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
apps/profile/ProfileArtis.js | 2 +-
apps/profile/ProfileDetail.js | 4 +-
models/Artifact.js | 20 +-
models/AvatarArtis.js | 2 +-
models/Character.js | 150 ++-
models/ProfileData.js | 25 +-
models/character-lib/CharImg.js | 12 +-
resources/character/profile-detail.html | 2 +-
resources/meta/artifact/meta.js | 1400 +++++------------------
9 files changed, 365 insertions(+), 1252 deletions(-)
diff --git a/apps/profile/ProfileArtis.js b/apps/profile/ProfileArtis.js
index 7bb81342..74891d22 100644
--- a/apps/profile/ProfileArtis.js
+++ b/apps/profile/ProfileArtis.js
@@ -43,7 +43,7 @@ export async function profileArtis (e) {
return await Common.render('character/artis-mark', {
uid,
elem: char.elem,
- splash: char.getImgs(profile.costume).splash0,
+ splash: profile.costumeSplash,
data: profile,
costume: profile.costume ? '2' : '',
artisDetail,
diff --git a/apps/profile/ProfileDetail.js b/apps/profile/ProfileDetail.js
index 01e56d2a..72c9a1dc 100644
--- a/apps/profile/ProfileDetail.js
+++ b/apps/profile/ProfileDetail.js
@@ -195,6 +195,7 @@ export async function renderProfile (e, char, mode = 'profile', params = {}) {
let artisDetail = profile.getArtisMark()
let artisKeyTitle = ProfileArtis.getArtisKeyTitle()
let imgs = char.getImgs(profile.costume)
+ let costumeSplash = profile.costumeSplash
// 渲染图像
let msgRes = await Common.render('character/profile-detail', {
save_id: uid,
@@ -210,6 +211,7 @@ export async function renderProfile (e, char, mode = 'profile', params = {}) {
artisKeyTitle,
enemyLv,
imgs,
+ costumeSplash,
enemyName: dmgCalc.enemyName || '小宝',
talentMap: { a: '普攻', e: '战技', q: '爆发' },
bodyClass: `char-${char.name}`,
@@ -218,7 +220,7 @@ export async function renderProfile (e, char, mode = 'profile', params = {}) {
}, { e, scale: 1.6, retMsgId: true })
if (msgRes && msgRes.message_id) {
// 如果消息发送成功,就将message_id和图片路径存起来,3小时过期
- await redis.set(`miao:original-picture:${msgRes.message_id}`, imgs.splash0, { EX: 3600 * 3 })
+ await redis.set(`miao:original-picture:${msgRes.message_id}`, costumeSplash, { EX: 3600 * 3 })
}
return true
}
diff --git a/models/Artifact.js b/models/Artifact.js
index 029764f1..edcadd2f 100644
--- a/models/Artifact.js
+++ b/models/Artifact.js
@@ -58,22 +58,24 @@ class Artifact extends Base {
}
}
- static getMainById (id, level = 20, star) {
- let cfg = mainIdMap[id]
- if (!cfg) {
+ static getMainById (id, level = 20, star = 5) {
+ let key = mainIdMap[id]
+ if (!key) {
return false
}
- let attrCfg = attrMap[Format.isElem(cfg.key) ? 'dmg' : cfg.key]
- let eff = ['hpPlus', 'atkPlus', 'defPlus'].includes(cfg.key) ? 2 : 1
+ let attrCfg = attrMap[Format.isElem(key) ? 'dmg' : key]
+ let posEff = ['hpPlus', 'atkPlus', 'defPlus'].includes(key) ? 2 : 1
+ let starEff = { 1: 0.21, 2: 0.36, 3: 0.6, 4: 0.9, 5: 1 }
return {
- key: cfg.key,
- value: attrCfg.value * (1.2 + 0.34 * level) * eff
+ key,
+ value: attrCfg.value * (1.2 + 0.34 * level) * posEff * (starEff[star || 5])
}
}
- static getAttrsByIds (ids) {
+ static getAttrsByIds (ids, star = 5) {
let ret = []
let tmp = {}
+ let starEff = { 1: 0.21, 2: 0.36, 3: 0.6, 4: 0.8, 5: 1 }
lodash.forEach(ids, (id) => {
let cfg = attrIdMap[id]
if (!cfg) {
@@ -93,7 +95,7 @@ class Artifact extends Base {
})
lodash.forEach(tmp, (ds, key) => {
if (attrMap[key]) {
- ds.value = attrMap[key].value * ds.eff
+ ds.value = attrMap[key].value * ds.eff * starEff[star]
}
})
return ret
diff --git a/models/AvatarArtis.js b/models/AvatarArtis.js
index 07127af1..60b3795e 100644
--- a/models/AvatarArtis.js
+++ b/models/AvatarArtis.js
@@ -87,7 +87,7 @@ export default class AvatarArtis extends Base {
arti.mainId = ds.mainId
arti.attrIds = ds.attrIds
arti.main = Artifact.getMainById(ds.mainId, arti._level, arti._star)
- arti.attrs = Artifact.getAttrsByIds(ds.attrIds)
+ arti.attrs = Artifact.getAttrsByIds(ds.attrIds, arti._star)
} else if (ds.main && ds.attrs) {
arti.main = ArtisMark.formatAttr(ds.main || {})
arti.attrs = []
diff --git a/models/Character.js b/models/Character.js
index b46cc88b..3774c905 100644
--- a/models/Character.js
+++ b/models/Character.js
@@ -20,6 +20,9 @@ let getMeta = function (name) {
}
class Character extends Base {
+ // 默认获取的数据
+ _dataKey = 'id,name,abbr,title,star,elem,allegiance,weapon,birthday,astro,cncv,jpcv,ver,desc,talentCons'
+
constructor ({ id, name = '', elem = '' }) {
super()
// 检查缓存
@@ -40,9 +43,6 @@ class Character extends Base {
return this._cache()
}
- // 默认获取的数据
- _dataKey = 'id,name,abbr,title,star,elem,allegiance,weapon,birthday,astro,cncv,jpcv,ver,desc,talentCons'
-
// 是否为官方角色
get isOfficial () {
return /[12]0\d{6}/.test(this._id)
@@ -140,6 +140,59 @@ class Character extends Base {
return this.meta?.talentCons || {}
}
+ // 获取生日
+ get birthday () {
+ let birth = this.birth
+ if (!birth) {
+ return ''
+ }
+ birth = birth.split('-')
+ return `${birth[0]}月${birth[1]}日`
+ }
+
+ // 基于角色名获取Character
+ static get (val) {
+ let id = CharId.getId(val, Character.gsCfg)
+ if (!id) {
+ return false
+ }
+ return new Character(id)
+ }
+
+ static forEach (fn, type = 'all') {
+ lodash.forEach(idMap, (name, id) => {
+ let char = Character.get({ id, name })
+ if (type === 'release' && !char.isRelease) {
+ return true
+ }
+ if (type === 'official' && !char.isOfficial) {
+ return true
+ }
+ return fn(char) !== false
+ })
+ }
+
+ // 当获取角色为旅行者时,会考虑当前uid的账号情况返回对应旅行者
+ static async getAvatar (name, uid) {
+ let char = Character.get(name)
+ return await char.getTraveler(uid)
+ }
+
+ // TODO:待废弃
+ static getAbbr () {
+ return abbrMap
+ }
+
+ // TODO:待废弃
+ static checkWifeType (charid, type) {
+ return !!wifeMap[type][charid]
+ }
+
+ // 获取排序ID
+ static sortIds (arr) {
+ return arr.sort((a, b) => (idSort[a] || 300) - (idSort[b] || 300))
+ }
+
// 获取attr列表
getAttrList () {
let { meta } = this
@@ -151,16 +204,6 @@ class Character extends Base {
return CharMeta.getMaterials(this, type)
}
- // 获取生日
- get birthday () {
- let birth = this.birth
- if (!birth) {
- return ''
- }
- birth = birth.split('-')
- return `${birth[0]}月${birth[1]}日`
- }
-
// 获取角色character-img图片
getCardImg (se = false, def = true) {
if (this.name === '旅行者') {
@@ -169,6 +212,8 @@ class Character extends Base {
return CharImg.getCardImg(this.name, se, def)
}
+ // 设置旅行者数据
+
getAvatarTalent (talent = {}, cons = 0, mode = 'original') {
return CharTalent.getAvatarTalent(this.id, talent, cons, mode, this.talentCons)
}
@@ -192,34 +237,22 @@ class Character extends Base {
// 获取角色插画
getImgs (costume = '') {
- if (!lodash.isArray(costume)) {
- costume = [costume, false]
+ if (lodash.isArray(costume)) {
+ costume = costume[0]
}
- let costumeCfg = [this.checkCostume(costume[0]) ? '2' : '', costume[1] || 'normal']
-
- let cacheId = `costume${costume[0]}`
+ let costumeIdx = this.checkCostume(costume) ? '2' : ''
+ let cacheId = `costume${costumeIdx}`
if (!this._imgs) {
this._imgs = {}
}
if (!this._imgs[cacheId]) {
- this._imgs[cacheId] = CharImg.getImgs(this.name, costumeCfg, this.isTraveler ? this.elem : '', this.source === 'amber' ? 'png' : 'webp')
+ this._imgs[cacheId] = CharImg.getImgs(this.name, costumeIdx, this.isTraveler ? this.elem : '', this.source === 'amber' ? 'png' : 'webp')
}
- let ret = this._imgs[cacheId]
- let nPath = `meta/character/${this.name}`
- if (costumeCfg[1] === 'super') {
- ret.splash0 = CharImg.getRandomImg(
- [`profile/super-character/${this.name}`, `profile/normal-character/${this.name}`],
- [`${nPath}/imgs/splash0.webp`, `${nPath}/imgs/splash${costumeCfg[0]}.webp`, `/${nPath}/imgs/splash.webp`]
- )
- } else {
- ret.splash0 = CharImg.getRandomImg(
- [`profile/normal-character/${this.name}`],
- [`${nPath}/imgs/splash${costumeCfg[0]}.webp`, `/${nPath}/imgs/splash.webp`]
- )
- }
- return ret
+ return this._imgs[cacheId]
}
+ // 基于角色名获取Character
+
// 获取详情数据
getDetail (elem = '') {
if (this._detail) {
@@ -242,7 +275,8 @@ class Character extends Base {
return this._detail
}
- // 设置旅行者数据
+ // 获取别名数据
+
// TODO:迁移至Avatar
setTraveler (uid = '') {
if (this.isTraveler && uid && uid.toString().length === 9) {
@@ -253,6 +287,8 @@ class Character extends Base {
}
}
+ // 检查wife类型
+
// 获取旅行者数据
async getTraveler (uid) {
if (this.isTraveler) {
@@ -285,52 +321,6 @@ class Character extends Base {
return await this.getTraveler(uid)
}
- // 基于角色名获取Character
- static get (val) {
- let id = CharId.getId(val, Character.gsCfg)
- if (!id) {
- return false
- }
- return new Character(id)
- }
-
- static forEach (fn, type = 'all') {
- lodash.forEach(idMap, (name, id) => {
- let char = Character.get({ id, name })
- if (type === 'release' && !char.isRelease) {
- return true
- }
- if (type === 'official' && !char.isOfficial) {
- return true
- }
- return fn(char) !== false
- })
- }
-
- // 基于角色名获取Character
- // 当获取角色为旅行者时,会考虑当前uid的账号情况返回对应旅行者
- static async getAvatar (name, uid) {
- let char = Character.get(name)
- return await char.getTraveler(uid)
- }
-
- // 获取别名数据
- // TODO:待废弃
- static getAbbr () {
- return abbrMap
- }
-
- // 检查wife类型
- // TODO:待废弃
- static checkWifeType (charid, type) {
- return !!wifeMap[type][charid]
- }
-
- // 获取排序ID
- static sortIds (arr) {
- return arr.sort((a, b) => (idSort[a] || 300) - (idSort[b] || 300))
- }
-
// 获取伤害计算配置
getCalcRule () {
if (!this._calcRule && this._calcRule !== false) {
diff --git a/models/ProfileData.js b/models/ProfileData.js
index a413628e..0799be67 100644
--- a/models/ProfileData.js
+++ b/models/ProfileData.js
@@ -3,6 +3,7 @@ import AvatarData from './AvatarData.js'
import { Data } from '../components/index.js'
import { ProfileArtis, ProfileDmg } from './index.js'
import AttrCalc from './profile-lib/AttrCalc.js'
+import CharImg from './character-lib/CharImg.js'
export default class ProfileData extends AvatarData {
constructor (ds = {}, calc = true) {
@@ -17,16 +18,27 @@ export default class ProfileData extends AvatarData {
return this.isProfile
}
- get splashCostume () {
+ get costumeSplash () {
let costume = this._costume
- if (lodash.isArray(costume)) {
- costume = costume[0]
- }
+ costume = this.char.checkCostume(costume) ? '2' : ''
+
+ let nPath = `meta/character/${this.name}`
+ let isSuper = false
let talent = this.talent ? lodash.map(this.talent, (ds) => ds.original).join('') : ''
if (this.cons === 6 || ['ACE', 'ACE²'].includes(this.artis?.markClass) || talent === '101010') {
- return [costume, 'super']
+ isSuper = true
+ }
+ if (isSuper) {
+ return CharImg.getRandomImg(
+ [`profile/super-character/${this.name}`, `profile/normal-character/${this.name}`],
+ [`${nPath}/imgs/splash0.webp`, `${nPath}/imgs/splash${costume}.webp`, `/${nPath}/imgs/splash.webp`]
+ )
+ } else {
+ return CharImg.getRandomImg(
+ [`profile/normal-character/${this.name}`],
+ [`${nPath}/imgs/splash${costume}.webp`, `/${nPath}/imgs/splash.webp`]
+ )
}
- return [costume, 'normal']
}
get hasDmg () {
@@ -61,7 +73,6 @@ export default class ProfileData extends AvatarData {
}
setArtis (ds = false) {
- console.log('ds', ds.artis?.artis[1])
this.artis?.setProfile(this, ds.artis?.artis || ds.artis || ds)
}
diff --git a/models/character-lib/CharImg.js b/models/character-lib/CharImg.js
index 27121939..08f3d8c6 100644
--- a/models/character-lib/CharImg.js
+++ b/models/character-lib/CharImg.js
@@ -82,10 +82,8 @@ const CharImg = {
},
// 获取角色的图像资源数据
- getImgs (name, costumeCfg = '', travelerElem = '', fileType = 'webp') {
- if (!lodash.isArray(costumeCfg)) {
- costumeCfg = [costumeCfg, 'normal']
- }
+ getImgs (name, costumeIdx = '', travelerElem = '', fileType = 'webp') {
+ costumeIdx = costumeIdx === '2' ? '2' : ''
let imgs = {}
if (!['空', '荧', '旅行者'].includes(name)) {
travelerElem = ''
@@ -102,10 +100,10 @@ const CharImg = {
let tAdd = (key, path) => {
imgs[key] = `${travelerElem ? tPath : nPath}${path}.${fileType}`
}
- add('face', 'imgs/face', `imgs/face${costumeCfg[0]}`)
- add('side', 'imgs/side', `imgs/side${costumeCfg[0]}`)
+ add('face', 'imgs/face', `imgs/face${costumeIdx}`)
+ add('side', 'imgs/side', `imgs/side${costumeIdx}`)
add('gacha', 'imgs/gacha')
- add('splash', 'imgs/splash', `imgs/splash${costumeCfg[0]}`)
+ add('splash', 'imgs/splash', `imgs/splash${costumeIdx}`)
// 检查彩蛋自定义
tAdd('card', 'imgs/card')
tAdd('banner', 'imgs/banner')
diff --git a/resources/character/profile-detail.html b/resources/character/profile-detail.html
index b0fd73d2..ac2736c8 100644
--- a/resources/character/profile-detail.html
+++ b/resources/character/profile-detail.html
@@ -11,7 +11,7 @@
{{block 'main'}}
{{data.name}}
UID {{uid}} - Lv.{{data.level}}
diff --git a/resources/meta/artifact/meta.js b/resources/meta/artifact/meta.js
index 8fbe4c18..2a4f4cff 100644
--- a/resources/meta/artifact/meta.js
+++ b/resources/meta/artifact/meta.js
@@ -52,29 +52,46 @@ export const attrValue = {
phy: 7.288,
heal: 4.487
}
-/**
- *
- * @type {{phy: {format: string, text: string, title: string, type: string, value: number}, def: {valueMin: number, format: string, calc: string, text: string, title: string, type: string, value: number}, hp: {valueMin: number, format: string, calc: string, text: string, title: string, type: string, value: number}, atkPlus: {valueMin: number, format: string, title: string, type: string, value: number, base: string}, hpPlus: {valueMin: number, format: string, title: string, type: string, value: number, base: string}, mastery: {valueMin: number, format: string, calc: string, text: string, title: string, type: string, value: number}, cpct: {valueMin: number, format: string, calc: string, text: string, title: string, type: string, value: number}, defPlus: {valueMin: number, format: string, title: string, type: string, value: number, base: string}, cdmg: {valueMin: number, format: string, calc: string, text: string, title: string, type: string, value: number}, recharge: {valueMin: number, format: string, calc: string, text: string, title: string, type: string, value: number}, heal: {format: string, text: string, title: string, type: string, value: number}, atk: {valueMin: number, format: string, calc: string, text: string, title: string, type: string, value: number}, dmg: {format: string, text: string, title: string, type: string, value: number}}}
- */
+
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.29, text: '7.29%', valueMin: 5.1 },
+ 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.89, text: '3.89%', valueMin: 2.72 },
- cdmg: { title: '暴击伤害', format: 'pct', calc: 'plus', type: 'normal', value: 7.77, text: '7.77%', valueMin: 5.44 },
- mastery: { title: '元素精通', format: 'comma', calc: 'plus', type: 'normal', value: 23.31, text: '23.31', valueMin: 16.32 },
+ 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.825, text: '5.83%' },
+ 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%' }
}
+let basicNum = 3.886449
+let attrPct = {
+ atk: 1.5,
+ atkPlus: 5,
+ def: 1.875,
+ defPlus: 6,
+ hp: 1.5,
+ hpPlus: 1.875 * 41,
+ cpct: 1,
+ cdmg: 2,
+ mastery: 6,
+ recharge: 1 / 0.6,
+ dmg: 1.5,
+ phy: 1.875,
+ heal: 1.5 / 1.3
+}
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
+ }
}
export const attrNameMap = anMap
@@ -88,1142 +105,235 @@ export const mainAttr = {
export const subAttr = 'atk,atkPlus,def,defPlus,hp,hpPlus,mastery,recharge,cpct,cdmg'.split(',')
export const mainIdMap = {
- 10001: {
- depotId: 1000,
- key: 'hpPlus'
- },
- 10002: {
- depotId: 1000,
- key: 'hp',
- weight: 1334
- },
- 10003: {
- depotId: 1000,
- key: 'atkPlus'
- },
- 10004: {
- depotId: 1000,
- key: 'atk',
- weight: 1333
- },
- 10005: {
- depotId: 1000,
- key: 'defPlus'
- },
- 10006: {
- depotId: 1000,
- key: 'def',
- weight: 1333
- },
- 10007: {
- depotId: 1000,
- key: 'recharge',
- weight: 500
- },
- 10008: {
- depotId: 1000,
- key: 'mastery',
- weight: 500
- },
- 12001: {
- depotId: 2000,
- key: 'atkPlus',
- weight: 1000
- },
- 13001: {
- depotId: 3000,
- key: 'hpPlus'
- },
- 13002: {
- depotId: 3000,
- key: 'hp',
- weight: 1100
- },
- 13003: {
- depotId: 3000,
- key: 'atkPlus'
- },
- 13004: {
- depotId: 3000,
- key: 'atk',
- weight: 1100
- },
- 13005: {
- depotId: 3000,
- key: 'defPlus'
- },
- 13006: {
- depotId: 3000,
- key: 'def',
- weight: 1100
- },
- 13007: {
- depotId: 3000,
- key: 'cpct',
- weight: 500
- },
- 13008: {
- depotId: 3000,
- key: 'cdmg',
- weight: 500
- },
- 13009: {
- depotId: 3000,
- key: 'heal',
- weight: 500
- },
- 13010: {
- depotId: 3000,
- key: 'mastery',
- weight: 200
- },
- 14001: {
- depotId: 4000,
- key: 'hpPlus',
- weight: 1000
- },
- 15001: {
- depotId: 5000,
- key: 'hpPlus'
- },
- 15002: {
- depotId: 5000,
- key: 'hp',
- weight: 850
- },
- 15003: {
- depotId: 5000,
- key: 'atkPlus'
- },
- 15004: {
- depotId: 5000,
- key: 'atk',
- weight: 850
- },
- 15005: {
- depotId: 5000,
- key: 'defPlus'
- },
- 15006: {
- depotId: 5000,
- key: 'def',
- weight: 800
- },
- 15007: {
- depotId: 5000,
- key: 'mastery',
- weight: 100
- },
- 15008: {
- depotId: 5000,
- key: 'pyro',
- weight: 200
- },
- 15009: {
- depotId: 5000,
- key: 'electro',
- weight: 200
- },
- 15010: {
- depotId: 5000,
- key: 'cryo',
- weight: 200
- },
- 15011: {
- depotId: 5000,
- key: 'hydro',
- weight: 200
- },
- 15012: {
- depotId: 5000,
- key: 'anemo',
- weight: 200
- },
- 15013: {
- depotId: 5000,
- key: 'geo',
- weight: 200
- },
- 15014: {
- depotId: 5000,
- key: 'dendro'
- },
- 15015: {
- depotId: 5000,
- key: 'phy',
- weight: 200
- },
- 10990: {
- depotId: 1099,
- key: 'atk',
- weight: 999
- },
- 10980: {
- depotId: 1098,
- key: 'hp',
- weight: 999
- },
- 10970: {
- depotId: 1097,
- key: 'def',
- weight: 999
- },
- 10960: {
- depotId: 1096,
- key: 'recharge',
- weight: 999
- },
- 10950: {
- depotId: 1095,
- key: 'mastery',
- weight: 999
- },
- 30990: {
- depotId: 3099,
- key: 'atk',
- weight: 999
- },
- 30980: {
- depotId: 3098,
- key: 'hp',
- weight: 999
- },
- 30970: {
- depotId: 3097,
- key: 'def',
- weight: 999
- },
- 30960: {
- depotId: 3096,
- key: 'cpct',
- weight: 999
- },
- 30950: {
- depotId: 3095,
- key: 'cdmg',
- weight: 999
- },
- 30940: {
- depotId: 3094,
- key: 'heal',
- weight: 999
- },
- 30930: {
- depotId: 3093,
- key: 'mastery',
- weight: 999
- },
- 50990: {
- depotId: 5099,
- key: 'atk',
- weight: 999
- },
- 50980: {
- depotId: 5098,
- key: 'hp',
- weight: 999
- },
- 50970: {
- depotId: 5097,
- key: 'def',
- weight: 999
- },
- 50960: {
- depotId: 5096,
- key: 'pyro',
- weight: 999
- },
- 50950: {
- depotId: 5095,
- key: 'electro',
- weight: 999
- },
- 50940: {
- depotId: 5094,
- key: 'cryo',
- weight: 999
- },
- 50930: {
- depotId: 5093,
- key: 'hydro',
- weight: 999
- },
- 50920: {
- depotId: 5092,
- key: 'anemo',
- weight: 999
- },
- 50910: {
- depotId: 5091,
- key: 'geo',
- weight: 999
- },
- 50900: {
- depotId: 5090,
- key: 'dendro',
- weight: 999
- },
- 50890: {
- depotId: 5089,
- key: 'phy',
- weight: 999
- },
- 50880: {
- depotId: 5088,
- key: 'mastery',
- weight: 999
- }
+ 10001: 'hpPlus',
+ 10002: 'hp',
+ 10003: 'atkPlus',
+ 10004: 'atk',
+ 10005: 'defPlus',
+ 10006: 'def',
+ 10007: 'recharge',
+ 10008: 'mastery',
+ 12001: 'atkPlus',
+ 13001: 'hpPlus',
+ 13002: 'hp',
+ 13003: 'atkPlus',
+ 13004: 'atk',
+ 13005: 'defPlus',
+ 13006: 'def',
+ 13007: 'cpct',
+ 13008: 'cdmg',
+ 13009: 'heal',
+ 13010: 'mastery',
+ 14001: 'hpPlus',
+ 15001: 'hpPlus',
+ 15002: 'hp',
+ 15003: 'atkPlus',
+ 15004: 'atk',
+ 15005: 'defPlus',
+ 15006: 'def',
+ 15007: 'mastery',
+ 15008: 'pyro',
+ 15009: 'electro',
+ 15010: 'cryo',
+ 15011: 'hydro',
+ 15012: 'anemo',
+ 15013: 'geo',
+ 15014: 'dendro',
+ 15015: 'phy',
+ 10990: 'atk',
+ 10980: 'hp',
+ 10970: 'def',
+ 10960: 'recharge',
+ 10950: 'mastery',
+ 30990: 'atk',
+ 30980: 'hp',
+ 30970: 'def',
+ 30960: 'cpct',
+ 30950: 'cdmg',
+ 30940: 'heal',
+ 30930: 'mastery',
+ 50990: 'atk',
+ 50980: 'hp',
+ 50970: 'def',
+ 50960: 'pyro',
+ 50950: 'electro',
+ 50940: 'cryo',
+ 50930: 'hydro',
+ 50920: 'anemo',
+ 50910: 'geo',
+ 50900: 'dendro',
+ 50890: 'phy',
+ 50880: 'mastery'
}
-
export const attrIdMap = {
- 101021: {
- key: 'hpPlus',
- eff: 0.7998661408903833,
- position: 1
- },
- 101022: {
- key: 'hpPlus',
- eff: 1,
- position: 2
- },
- 101031: {
- key: 'hp',
- eff: 0.8013698223808419,
- position: 1
- },
- 101032: {
- key: 'hp',
- eff: 1,
- position: 2
- },
- 101051: {
- key: 'atkPlus',
- eff: 0.799999951093626,
- position: 1
- },
- 101052: {
- key: 'atkPlus',
- eff: 1,
- position: 2
- },
- 101061: {
- key: 'atk',
- eff: 0.8013698223808419,
- position: 1
- },
- 101062: {
- key: 'atk',
- eff: 1,
- position: 2
- },
- 101081: {
- key: 'defPlus',
- eff: 0.800865831025008,
- position: 1
- },
- 101082: {
- key: 'defPlus',
- eff: 1,
- position: 2
- },
- 101091: {
- key: 'def',
- eff: 0.8021977881396791,
- position: 1
- },
- 101092: {
- key: 'def',
- eff: 1,
- position: 2
- },
- 101201: {
- key: 'cpct',
- eff: 0.8041236658084417,
- position: 1
- },
- 101202: {
- key: 'cpct',
- eff: 1,
- position: 2
- },
- 101221: {
- key: 'cdmg',
- eff: 0.7989690355415727,
- position: 1
- },
- 101222: {
- key: 'cdmg',
- eff: 1,
- position: 2
- },
- 101231: {
- key: 'recharge',
- eff: 0.8024691315440212,
- position: 1
- },
- 101232: {
- key: 'recharge',
- eff: 1,
- position: 2
- },
- 101241: {
- key: 'mastery',
- eff: 0.7993138779408093,
- position: 1
- },
- 101242: {
- key: 'mastery',
- eff: 1,
- position: 2
- },
- 201021: {
- key: 'hpPlus',
- eff: 0.700000010640718,
- position: 1
- },
- 201022: {
- key: 'hpPlus',
- eff: 0.8500697818291011,
- position: 2
- },
- 201023: {
- key: 'hpPlus',
- eff: 1,
- position: 3
- },
- 201031: {
- key: 'hp',
- eff: 0.6995708401537059,
- position: 1
- },
- 201032: {
- key: 'hp',
- eff: 0.8497854200768529,
- position: 2
- },
- 201033: {
- key: 'hp',
- eff: 1,
- position: 3
- },
- 201051: {
- key: 'atkPlus',
- eff: 0.700214117238633,
- position: 1
- },
- 201052: {
- key: 'atkPlus',
- eff: 0.8501070586193165,
- position: 2
- },
- 201053: {
- key: 'atkPlus',
- eff: 1,
- position: 3
- },
- 201061: {
- key: 'atk',
- eff: 0.6995708401537059,
- position: 1
- },
- 201062: {
- key: 'atk',
- eff: 0.8497854200768529,
- position: 2
- },
- 201063: {
- key: 'atk',
- eff: 1,
- position: 3
- },
- 201081: {
- key: 'defPlus',
- eff: 0.6996403138377545,
- position: 1
- },
- 201082: {
- key: 'defPlus',
- eff: 0.8489208343106637,
- position: 2
- },
- 201083: {
- key: 'defPlus',
- eff: 1,
- position: 3
- },
- 201091: {
- key: 'def',
- eff: 0.7010309324542161,
- position: 1
- },
- 201092: {
- key: 'def',
- eff: 0.8522336763160644,
- position: 2
- },
- 201093: {
- key: 'def',
- eff: 1,
- position: 3
- },
- 201201: {
- key: 'cpct',
- eff: 0.7032258250586824,
- position: 1
- },
- 201202: {
- key: 'cpct',
- eff: 0.8516129125293411,
- position: 2
- },
- 201203: {
- key: 'cpct',
- eff: 1,
- position: 3
- },
- 201221: {
- key: 'cdmg',
- eff: 0.7009646525642665,
- position: 1
- },
- 201222: {
- key: 'cdmg',
- eff: 0.8488746119364413,
- position: 2
- },
- 201223: {
- key: 'cdmg',
- eff: 1,
- position: 3
- },
- 201231: {
- key: 'recharge',
- eff: 0.6988417152242902,
- position: 1
- },
- 201232: {
- key: 'recharge',
- eff: 0.8494208216537456,
- position: 2
- },
- 201233: {
- key: 'recharge',
- eff: 1,
- position: 3
- },
- 201241: {
- key: 'mastery',
- eff: 0.6998928470745912,
- position: 1
- },
- 201242: {
- key: 'mastery',
- eff: 0.8499463979833213,
- position: 2
- },
- 201243: {
- key: 'mastery',
- eff: 1,
- position: 3
- },
- 301021: {
- key: 'hpPlus',
- eff: 0.700000010640718,
- position: 1
- },
- 301022: {
- key: 'hpPlus',
- eff: 0.8000000425628723,
- position: 2
- },
- 301023: {
- key: 'hpPlus',
- eff: 0.9000000212814362,
- position: 3
- },
- 301024: {
- key: 'hpPlus',
- eff: 1,
- position: 4
- },
- 301031: {
- key: 'hp',
- eff: 0.699999978712627,
- position: 1
- },
- 301032: {
- key: 'hp',
- eff: 0.800000021287373,
- position: 2
- },
- 301033: {
- key: 'hp',
- eff: 0.9000000106436865,
- position: 3
- },
- 301034: {
- key: 'hp',
- eff: 1,
- position: 4
- },
- 301051: {
- key: 'atkPlus',
- eff: 0.700214117238633,
- position: 1
- },
- 301052: {
- key: 'atkPlus',
- eff: 0.7997858317081389,
- position: 2
- },
- 301053: {
- key: 'atkPlus',
- eff: 0.8993575461776449,
- position: 3
- },
- 301054: {
- key: 'atkPlus',
- eff: 1,
- position: 4
- },
- 301061: {
- key: 'atk',
- eff: 0.699999978712627,
- position: 1
- },
- 301062: {
- key: 'atk',
- eff: 0.800000021287373,
- position: 2
- },
- 301063: {
- key: 'atk',
- eff: 0.9000000106436865,
- position: 3
- },
- 301064: {
- key: 'atk',
- eff: 1,
- position: 4
- },
- 301081: {
- key: 'defPlus',
- eff: 0.7002700675271825,
- position: 1
- },
- 301082: {
- key: 'defPlus',
- eff: 0.8001800736312134,
- position: 2
- },
- 301083: {
- key: 'defPlus',
- eff: 0.9000900368156067,
- position: 3
- },
- 301084: {
- key: 'defPlus',
- eff: 1,
- position: 4
- },
- 301091: {
- key: 'def',
- eff: 0.7002288624079749,
- position: 1
- },
- 301092: {
- key: 'def',
- eff: 0.8009153643849788,
- position: 2
- },
- 301093: {
- key: 'def',
- eff: 0.8993134980229961,
- position: 3
- },
- 301094: {
- key: 'def',
- eff: 1,
- position: 4
- },
- 301201: {
- key: 'cpct',
- eff: 0.6995708401537059,
- position: 1
- },
- 301202: {
- key: 'cpct',
- eff: 0.7982832806729697,
- position: 2
- },
- 301203: {
- key: 'cpct',
- eff: 0.9012875594807361,
- position: 3
- },
- 301204: {
- key: 'cpct',
- eff: 1,
- position: 4
- },
- 301221: {
- key: 'cdmg',
- eff: 0.6995708401537059,
- position: 1
- },
- 301222: {
- key: 'cdmg',
- eff: 0.8004292397881477,
- position: 2
- },
- 301223: {
- key: 'cdmg',
- eff: 0.9012875594807361,
- position: 3
- },
- 301224: {
- key: 'cdmg',
- eff: 1,
- position: 4
- },
- 301231: {
- key: 'recharge',
- eff: 0.6992288170077031,
- position: 1
- },
- 301232: {
- key: 'recharge',
- eff: 0.7994858620441655,
- position: 2
- },
- 301233: {
- key: 'recharge',
- eff: 0.8997429549635376,
- position: 3
- },
- 301234: {
- key: 'recharge',
- eff: 1,
- position: 4
- },
- 301241: {
- key: 'mastery',
- eff: 0.6997855698371146,
- position: 1
- },
- 301242: {
- key: 'mastery',
- eff: 0.7998570238353141,
- position: 2
- },
- 301243: {
- key: 'mastery',
- eff: 0.8999285460018005,
- position: 3
- },
- 301244: {
- key: 'mastery',
- eff: 1,
- position: 4
- },
- 401021: {
- key: 'hpPlus',
- eff: 0.7000000127688611,
- position: 1
- },
- 401022: {
- key: 'hpPlus',
- eff: 0.7999999872311389,
- position: 2
- },
- 401023: {
- key: 'hpPlus',
- eff: 0.9000000255377223,
- position: 3
- },
- 401024: {
- key: 'hpPlus',
- eff: 1,
- position: 4
- },
- 401031: {
- key: 'hp',
- eff: 0.6995708401537059,
- position: 1
- },
- 401032: {
- key: 'hp',
- eff: 0.8004292397881477,
- position: 2
- },
- 401033: {
- key: 'hp',
- eff: 0.9012875594807361,
- position: 3
- },
- 401034: {
- key: 'hp',
- eff: 1,
- position: 4
- },
- 401051: {
- key: 'atkPlus',
- eff: 0.6998714684861824,
- position: 1
- },
- 401052: {
- key: 'atkPlus',
- eff: 0.8001285008687569,
- position: 2
- },
- 401053: {
- key: 'atkPlus',
- eff: 0.899742906327304,
- position: 3
- },
- 401054: {
- key: 'atkPlus',
- eff: 1,
- position: 4
- },
- 401061: {
- key: 'atk',
- eff: 0.6995708401537059,
- position: 1
- },
- 401062: {
- key: 'atk',
- eff: 0.8004292397881477,
- position: 2
- },
- 401063: {
- key: 'atk',
- eff: 0.9012875594807361,
- position: 3
- },
- 401064: {
- key: 'atk',
- eff: 1,
- position: 4
- },
- 401081: {
- key: 'defPlus',
- eff: 0.6997840020416457,
- position: 1
- },
- 401082: {
- key: 'defPlus',
- eff: 0.800215946464062,
- position: 2
- },
- 401083: {
- key: 'defPlus',
- eff: 0.9001079732320311,
- position: 3
- },
- 401084: {
- key: 'defPlus',
- eff: 1,
- position: 4
- },
- 401091: {
- key: 'def',
- eff: 0.6998285024582124,
- position: 1
- },
- 401092: {
- key: 'def',
- eff: 0.799313882035583,
- position: 2
- },
- 401093: {
- key: 'def',
- eff: 0.9005145565239961,
- position: 3
- },
- 401094: {
- key: 'def',
- eff: 1,
- position: 4
- },
- 401201: {
- key: 'cpct',
- eff: 0.7009646525642665,
- position: 1
- },
- 401202: {
- key: 'cpct',
- eff: 0.8006431216735538,
- position: 2
- },
- 401203: {
- key: 'cpct',
- eff: 0.900321590782841,
- position: 3
- },
- 401204: {
- key: 'cpct',
- eff: 1,
- position: 4
- },
- 401221: {
- key: 'cdmg',
- eff: 0.6993569082725104,
- position: 1
- },
- 401222: {
- key: 'cdmg',
- eff: 0.7990353773817976,
- position: 2
- },
- 401223: {
- key: 'cdmg',
- eff: 0.900321590782841,
- position: 3
- },
- 401224: {
- key: 'cdmg',
- eff: 1,
- position: 4
- },
- 401231: {
- key: 'recharge',
- eff: 0.70077217786434,
- position: 1
- },
- 401232: {
- key: 'recharge',
- eff: 0.7992277861772604,
- position: 2
- },
- 401233: {
- key: 'recharge',
- eff: 0.8996138571302306,
- position: 3
- },
- 401234: {
- key: 'recharge',
- eff: 1,
- position: 4
- },
- 401241: {
- key: 'mastery',
- eff: 0.7002681333376832,
- position: 1
- },
- 401242: {
- key: 'mastery',
- eff: 0.8000000204541412,
- position: 2
- },
- 401243: {
- key: 'mastery',
- eff: 0.9002681640188951,
- position: 3
- },
- 401244: {
- key: 'mastery',
- eff: 1,
- position: 4
- },
- 501021: {
- key: 'hpPlus',
- eff: 0.7000167527458159,
- position: 1
- },
- 501022: {
- key: 'hpPlus',
- eff: 0.8,
- position: 2
- },
- 501023: {
- key: 'hpPlus',
- eff: 0.9000167527458159,
- position: 3
- },
- 501024: {
- key: 'hpPlus',
- eff: 1,
- position: 4
- },
- 501031: {
- key: 'hp',
- eff: 0.6998285024582124,
- position: 1
- },
- 501032: {
- key: 'hp',
- eff: 0.799313882035583,
- position: 2
- },
- 501033: {
- key: 'hp',
- eff: 0.9005145565239961,
- position: 3
- },
- 501034: {
- key: 'hp',
- eff: 1,
- position: 4
- },
- 501051: {
- key: 'atkPlus',
- eff: 0.700257036056831,
- position: 1
- },
- 501052: {
- key: 'atkPlus',
- eff: 0.7999999901935807,
- position: 2
- },
- 501053: {
- key: 'atkPlus',
- eff: 0.9002570458632503,
- position: 3
- },
- 501054: {
- key: 'atkPlus',
- eff: 1,
- position: 4
- },
- 501061: {
- key: 'atk',
- eff: 0.6998285024582124,
- position: 1
- },
- 501062: {
- key: 'atk',
- eff: 0.799313882035583,
- position: 2
- },
- 501063: {
- key: 'atk',
- eff: 0.9005145565239961,
- position: 3
- },
- 501064: {
- key: 'atk',
- eff: 1,
- position: 4
- },
- 501081: {
- key: 'defPlus',
- eff: 0.6997840617661291,
- position: 1
- },
- 501082: {
- key: 'defPlus',
- eff: 0.8000000329563484,
- position: 2
- },
- 501083: {
- key: 'defPlus',
- eff: 0.8997840288097807,
- position: 3
- },
- 501084: {
- key: 'defPlus',
- eff: 1,
- position: 4
- },
- 501091: {
- key: 'def',
- eff: 0.6995884908250543,
- position: 1
- },
- 501092: {
- key: 'def',
- eff: 0.7997256775838287,
- position: 2
- },
- 501093: {
- key: 'def',
- eff: 0.8998628643426032,
- position: 3
- },
- 501094: {
- key: 'def',
- eff: 1,
- position: 4
- },
- 501201: {
- key: 'cpct',
- eff: 0.6992288170077031,
- position: 1
- },
- 501202: {
- key: 'cpct',
- eff: 0.7994858620441655,
- position: 2
- },
- 501203: {
- key: 'cpct',
- eff: 0.8997429549635376,
- position: 3
- },
- 501204: {
- key: 'cpct',
- eff: 1,
- position: 4
- },
- 501221: {
- key: 'cdmg',
- eff: 0.7001287406686748,
- position: 1
- },
- 501222: {
- key: 'cdmg',
- eff: 0.8005148188410904,
- position: 2
- },
- 501223: {
- key: 'cdmg',
- eff: 0.8996139218275844,
- position: 3
- },
- 501224: {
- key: 'cdmg',
- eff: 1,
- position: 4
- },
- 501231: {
- key: 'recharge',
- eff: 0.6990740469264689,
- position: 1
- },
- 501232: {
- key: 'recharge',
- eff: 0.7993827171139947,
- position: 2
- },
- 501233: {
- key: 'recharge',
- eff: 0.8996913298124741,
- position: 3
- },
- 501234: {
- key: 'recharge',
- eff: 1,
- position: 4
- },
- 501241: {
- key: 'mastery',
- eff: 0.7001287030773611,
- position: 1
- },
- 501242: {
- key: 'mastery',
- eff: 0.800085802051574,
- position: 2
- },
- 501243: {
- key: 'mastery',
- eff: 0.900042901025787,
- position: 3
- },
- 501244: {
- key: 'mastery',
- eff: 1,
- position: 4
- }
+ 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 }
}