From cdc0197c95cef7c89dc83c0f4041054239463d19 Mon Sep 17 00:00:00 2001 From: liangtongchuan Date: Thu, 8 Oct 2020 21:42:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=88=98=E6=96=97=E5=92=8C?= =?UTF-8?q?=E5=A4=A9=E6=A2=AF=E6=95=B0=E6=8D=AE=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game-server/app/util/gamedata.ts | 48 +++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 13 deletions(-) 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) {