// 兵种表 import {readJsonFile, parseNumberList, parseGoodStr} from '../util' import { FILENAME } from '../../consts' import { RewardInter } from '../interface'; const _ = require('lodash'); export interface DicJob { // 兵种id readonly jobid: number; // 兵种名 readonly name: string; // 该兵种在大兵种中的阶段 readonly grade: number; // 解锁等级 readonly unlockLevel: number; // 兵种类别 readonly job_class: number; // 职业类别 readonly type: number; // 特性 readonly seid: Array; // 训练消耗 readonly trainingConsume: Array; // 升阶消耗 readonly upGradeConsume: Array; // 生命训练提升 readonly hp: number; // 攻击力训练提升 readonly atk: number; // 防御力训练提升 readonly def: number; // 策防训练提升 readonly mdef: number; // 敏捷训练提升 readonly agi: number; // 幸运训练提升 readonly luk: number; } const str = readJsonFile(FILENAME.DIC_JOB); let arr = JSON.parse(str); type KeysEnum = { [P in keyof Required]: true }; const DicJobKeys: KeysEnum = {jobid: true, name: true, grade: true, unlockLevel: true, job_class: true, type: true, seid: true,trainingConsume: true, upGradeConsume: true, hp: true, atk: true, def: true, mdef: true, agi: true, luk: true}; export const dicJob = new Map(); export const jobClassMaxGrades = new Map(); export const jobClassAndgrades = new Map(); arr.forEach(o => { o.seid = parseNumberList(o.seid); o.trainingConsume = parseGoodStr(o.trainingConsume); o.upGradeConsume = parseGoodStr(o.upGradeConsume); dicJob.set(o.jobid, _.pick(o, Object.keys(DicJobKeys))); let jobClass = jobClassMaxGrades.get(o.job_class); if (!!jobClass && jobClass.grade < o.grade) { jobClassMaxGrades.set(o.job_class, {grade: o.grade,jobid: o.jobid}); } jobClassAndgrades.set(o.job_class+'_'+o.grade,{unlockLevel:o.unlockLevel, jobid:o.jobid}); }); arr = undefined;