// 镇念塔表 import {parseGoodStr, decodeArrayListStr, readJsonFile, parseNumberList} from '../util' import { FILENAME } from '../../consts'; import { RewardInter } from '../../pubUtils/interface'; export interface DicTower { // 镇念塔层数 readonly towerFloor: number; // 包含关卡 readonly warArray: Array; // 层数奖励 readonly reward: Array; // 收集奖励 readonly rewardOfcollect: Array; } const str = readJsonFile(FILENAME.DIC_TOWER); let arr = JSON.parse(str); export const dicTower = new Map(); arr.forEach(o => { o.warArray = parseNumberList(o.warArray); o.reward = parseGoodStr(o.reward); o.rewardOfcollect = parseGoodStrOfCollect(o.rewardOfcollect); dicTower.set(o.towerFloor, o); }); function parseGoodStrOfCollect(str: string) { let result = new Array<{id: number, count: number}>(); if(!str) return result; let decodeArr = decodeArrayListStr(str); for(let [id, count] of decodeArr) { if(isNaN(parseInt(id)) || isNaN(parseFloat(count))) { throw new Error('data table format wrong'); } result.push({id: parseInt(id), count: parseFloat(count)}); } return result }