// 武将觉醒表 import { readJsonFile, parseGoodStr } from '../util' import { ABI_STAGE, FILENAME } from '../../consts'; import { RewardInter } from '../interface'; const _ = require('lodash'); export interface DicHeroWake { // 唯一id readonly id: number; // 品质 readonly quality: number; // 彩星级 readonly star: number; // 碎片数量 readonly fragmentNum: number; // 消耗道具 readonly consume: Array; // 每阶升级属性 readonly ceAttr: Map } const str = readJsonFile(FILENAME.DIC_HERO_WAKE); let arr = JSON.parse(str); type KeysEnum = { [P in keyof Required]: true }; const DicHeroWakeKeys: KeysEnum = {id: true, quality: true, star: true, fragmentNum: true, consume: true, ceAttr: true}; export const dicHeroWake = new Map(); arr.forEach(o => { o.consume = parseGoodStr(o.consume); o.ceAttr = parseCeAttr(o); dicHeroWake.set(`${o.quality}_${o.star}`, _.pick(o, Object.keys(DicHeroWakeKeys))); }); function parseCeAttr(elem) { let ceAttr = new Map(); ceAttr.set(ABI_STAGE.HP, elem.hp_up); ceAttr.set(ABI_STAGE.ATK, elem.atk_up); ceAttr.set(ABI_STAGE.DEF, elem.def_up); ceAttr.set(ABI_STAGE.MDEF, elem.mdef_up); ceAttr.set(ABI_STAGE.AGI, elem.agi_up); ceAttr.set(ABI_STAGE.LUK, elem.luk_up); return ceAttr; }