import { readFileAndParse, parseGoodStr } from '../util' import { FILENAME } from '../../consts' type KeysEnum = { [P in keyof Required]: true }; import { RewardInter } from '../interface'; const _ = require('lodash'); export interface DicArmyTrainJuDian { readonly id: number; readonly trainLv: number; // 训练场多个难度组成的gk,每个难度一个warId,而这个gkId指trainGk_info这张表的id readonly trainInstances: Array<{hid: number, gkId: number, progress: number}>; // 进阶奖励 readonly jinjieReward: RewardInter[]; readonly soloRewardRatio: number; } const DicArmyTrainJuDianKeys: KeysEnum = { id: true, trainLv: true, trainInstances: true, jinjieReward: true, soloRewardRatio: true }; export const dicArmyTrainJuDian = new Map(); export const dicLastGuildTrainIdOfLv = new Map(); // 每级试炼场等级的最后据点id export const dicFirstGuildTrainIdOfLv = new Map(); // 每级试炼场等级的最先据点id export function loadArmyTrainJuDian() { dicArmyTrainJuDian.clear(); dicLastGuildTrainIdOfLv.clear(); dicFirstGuildTrainIdOfLv.clear(); let arr = readFileAndParse(FILENAME.DIC_ARMY_TRAIN_JU_DIAN); arr.forEach(o => { o.trainInstances = o.gkid.split('|').map(element => { let arr = element.split('&'); return {hid: parseInt(arr[0]), gkId: parseInt(arr[1]), progress: parseInt(arr[2])}; }); o.jinjieReward = parseGoodStr(o.jinjieReward); dicArmyTrainJuDian.set(o.id,_.pick(o, Object.keys(DicArmyTrainJuDianKeys))); if(!dicLastGuildTrainIdOfLv.has(o.trainLv)) { dicLastGuildTrainIdOfLv.set(o.trainLv, o.id); } else { if(dicLastGuildTrainIdOfLv.get(o.trainLv) < o.id) { dicLastGuildTrainIdOfLv.set(o.trainLv, o.id); } } if(!dicFirstGuildTrainIdOfLv.has(o.trainLv)) { dicFirstGuildTrainIdOfLv.set(o.trainLv, o.id); } else { if(dicFirstGuildTrainIdOfLv.get(o.trainLv) > o.id) { dicFirstGuildTrainIdOfLv.set(o.trainLv, o.id); } } }); arr = undefined; }