const fs = require('fs'); const path = require('path'); let 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['jsons'][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['jsons'][towerFile] || []; towerData.forEach(elem => { if (elem.towerFloor) { towerInfos.set(elem.towerFloor, elem); } }); } function initData (folder) { console.log('加载文件夹:', folder); if(!gamedata.hasOwnProperty(folder)) { gamedata[folder] = {}; } fs.readdirSync(__dirname + '/../resource/' + folder) .filter(function(file) { return (file.indexOf(".") !== 0) && (file !== "index.js"); }) //筛选有文件名且不是index进行遍历 .forEach(function(file) { var name = file.split('.')[0]; try { gamedata[folder][name] = JSON.parse( fs.readFileSync(path.resolve(__dirname, "../resource/" + folder + "/" + file)) ); } catch(e) { console.error('【文件缺少】:' + file); gamedata[folder][name] = []; } }); } function parseData() { parseWarData(); parseTowerData(); } initData('jsons'); // 加载一般json initData('warJsons'); // 加载出兵表 parseData(); export function getGamedata(key) { return gamedata['jsons'][key]; } // 获取出兵表 export function getWarJsons(key: string) { return gamedata['warJsons'][key]; } export function getWarById(warid: number) { return allWarInfos.get(warid); } export function getTowerDataByLv(lv: number) { return towerInfos.get(lv); } export function getGoodById(gid) { let goodsInfo = gamedata['jsons']['dic_goods']||[]; return goodsInfo.find(cur => { return cur.good_id == gid }); }