diff --git a/game-server/app/util/gamedata.ts b/game-server/app/util/gamedata.ts index b76816a97..77c7560d7 100644 --- a/game-server/app/util/gamedata.ts +++ b/game-server/app/util/gamedata.ts @@ -2,6 +2,32 @@ const fs = require('fs'); const path = require('path'); var gamedata = {}; +const wars = ['dic_zyz_gk_main', 'dic_zyz_gk_mainElite', 'dic_zyz_gk_daily', 'dic_zyz_gk_event', 'dic_zyz_gk_tower']; // 关卡相关的表 +const allWarInfos = new Map(); +const towerInfos = new Map(); + +function parseWarData() { + let result = null; + for (let filename of wars) { + let warInfo = gamedata[filename]||[]; + for(let war of warInfo) { + if(war.war_id) { + allWarInfos.set(war.war_id, war); + } + } + } + return result; +} + +function parseTowerData() { + const towerFile = 'dic_zyz_tower'; + const towerData = gamedata[towerFile] || []; + towerData.forEach(elem => { + if (elem.towerFloor) { + towerInfos.set(elem.towerFloor, elem); + } + }); +} function initData () { fs.readdirSync(__dirname + '/../resource') @@ -22,25 +48,21 @@ function initData () { }); } + +function parseData() { + parseWarData(); + parseTowerData(); +} + initData(); +parseData(); export function getGamedata(key) { return gamedata[key]; } -export function getWarById(warid) { - const wars = ['dic_zyz_gk_main', 'dic_zyz_gk_mainElite', 'dic_zyz_gk_daily', 'dic_zyz_gk_event']; // 关卡相关的表 - let result; - for(let filename of wars) { - let warInfo = gamedata[filename]||[]; - for(let war of warInfo) { - if(war.war_id == warid) { - result = war; break; - } - } - if(result) break; - } - return result||[]; +export function getWarById(warid: number) { + return allWarInfos.get(warid); } export function getGoodById(gid) {