添加字典表解析
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
// 奇遇表
|
||||
import { parseReward, decodeArrayStr, readJsonFile, parseNumberList } from '../util'
|
||||
import { FILENAME } from '../../consts/consts'
|
||||
import { RewardInter } from '../../pubUtils/interface';
|
||||
|
||||
interface SuitLevel {
|
||||
readonly min: number;
|
||||
readonly max?: number;
|
||||
}
|
||||
|
||||
export interface DicEvent {
|
||||
// 事件id
|
||||
readonly eventID: number;
|
||||
// 事件类型
|
||||
readonly eventType: number;
|
||||
// 事件品质
|
||||
readonly quality: number;
|
||||
// 事件名
|
||||
readonly name: string;
|
||||
// 胜利奖励
|
||||
readonly winReward: Array<RewardInter>;
|
||||
// 失败奖励
|
||||
readonly loseReward: Array<RewardInter>;
|
||||
// 适用等级
|
||||
readonly suitLevel: SuitLevel;
|
||||
// 关联关卡id
|
||||
readonly warId: number;
|
||||
// 权重
|
||||
readonly weight: number;
|
||||
// 移动点
|
||||
readonly movePointArray: Array<number>;
|
||||
|
||||
}
|
||||
|
||||
const str = readJsonFile(FILENAME.DIC_EVENT);
|
||||
let arr = JSON.parse(str);
|
||||
|
||||
export const dicEvent = new Map<number, DicEvent>();
|
||||
arr.forEach(o => {
|
||||
o.winReward = parseReward(o.winReward);
|
||||
o.loseReward = parseReward(o.loseReward);
|
||||
o.suitLevel = parseSuitLevel(o.suitLevel);
|
||||
o.movePointArray = parseNumberList(o.movePointArray);
|
||||
|
||||
dicEvent.set(o.quality, o);
|
||||
});
|
||||
|
||||
|
||||
function parseSuitLevel(str: string) {
|
||||
let decodeArr = decodeArrayStr(str, '&');
|
||||
let [min, max] = decodeArr;
|
||||
let suitLevel: SuitLevel;
|
||||
if(isNaN(parseInt(min)) || isNaN(parseInt(max))) throw new Error('data table format wrong');
|
||||
suitLevel = ({min: parseInt(min), max: parseInt(max)});
|
||||
return suitLevel;
|
||||
}
|
||||
Reference in New Issue
Block a user