Files
ZYZ/game-server/app/util/gamedata.ts
2020-10-08 21:42:51 +08:00

75 lines
1.8 KiB
TypeScript

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<number, Object>();
const towerInfos = new Map<number, Object>();
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')
.filter(function(file) {
return (file.indexOf(".") !== 0) && (file !== "index.js");
})
//筛选有文件名且不是index进行遍历
.forEach(function(file) {
var name = file.split('.')[0];
try {
gamedata[name] = JSON.parse(
fs.readFileSync(path.resolve(__dirname, "../resource/" + file))
);
} catch(e) {
console.error('【文件缺少】:' + file);
gamedata[name] = [];
}
});
}
function parseData() {
parseWarData();
parseTowerData();
}
initData();
parseData();
export function getGamedata(key) {
return gamedata[key];
}
export function getWarById(warid: number) {
return allWarInfos.get(warid);
}
export function getGoodById(gid) {
console.log(gid)
let goodsInfo = gamedata['dic_goods']||[];
return goodsInfo.find(cur => {
return cur.good_id == gid
});
}