添加字典表解析
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
// 镇念塔表
|
||||
import {parseReward, decodeArrayListStr, readJsonFile, parseNumberList} from '../util'
|
||||
import { FILENAME } from '../../consts/consts';
|
||||
import { RewardInter } from '../../pubUtils/interface';
|
||||
|
||||
export interface DicTower {
|
||||
// 镇念塔层数
|
||||
readonly towerFloor: number;
|
||||
// 包含关卡
|
||||
readonly warArray: Array<number>;
|
||||
// 层数奖励
|
||||
readonly reward: Array<RewardInter>;
|
||||
// 收集奖励
|
||||
readonly rewardOfcollect: Array<RewardInter>;
|
||||
}
|
||||
|
||||
const str = readJsonFile(FILENAME.DIC_TOWER);
|
||||
let arr = JSON.parse(str);
|
||||
|
||||
export const dicTower = new Map<number, DicTower>();
|
||||
|
||||
arr.forEach(o => {
|
||||
o.warArray = parseNumberList(o.warArray);
|
||||
o.reward = parseReward(o.reward);
|
||||
o.rewardOfcollect = parseRewardOfCollect(o.rewardOfcollect);
|
||||
dicTower.set(o.towerFloor, o);
|
||||
});
|
||||
|
||||
function parseRewardOfCollect(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
|
||||
}
|
||||
Reference in New Issue
Block a user