Files
ZYZ/shared/pubUtils/dictionary/DicHeroWake.ts
mamengke01 9a377e94d8 战力
2020-12-22 17:25:55 +08:00

46 lines
1.4 KiB
TypeScript

// 武将觉醒表
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<RewardInter>;
// 每阶升级属性
readonly ceAttr: Map<number, number>
}
const str = readJsonFile(FILENAME.DIC_HERO_WAKE);
let arr = JSON.parse(str);
type KeysEnum<T> = { [P in keyof Required<T>]: true };
const DicHeroWakeKeys: KeysEnum<DicHeroWake> = {id: true, quality: true, star: true, fragmentNum: true, consume: true, ceAttr: true};
export const dicHeroWake = new Map<string, DicHeroWake>();
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<number, number>();
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;
}