import { Logger } from "../../../../core_tgx/base/utils/Logger"; import { IDanCfg } from "../../../../module_basic/shared/configs/interface/IDanCfg"; export default class DanDataManager { private _data: Array | undefined; private _mainDanList : IDanCfg[]; private _childDanMap : Map; init(data: any): void { this._data = data; Logger.info(`配置数据(IDanCfg)加载完毕...`); this._mainDanList = []; let len = this._data.length; for (let i = 0; i < len; i++) { let element = this._data[i]; if(element && element.mainreward.length > 0){ this._mainDanList.push(element); } } this._childDanMap = new Map(); let getChildDanList = (mainDan : number) : IDanCfg[]=>{ let len = this._data.length; let tmp : IDanCfg[] = []; for (let i = 0; i < len; i++) { let element = this._data[i]; if(element.mainDan === mainDan){ tmp.push(element); } } return tmp; } for (let i = 0; i < this._mainDanList.length; i++) { let element = this._mainDanList[i]; let mainDan = element.mainDan; this._childDanMap.set(mainDan,getChildDanList(mainDan)); } } getData(id: number):IDanCfg { if (this._data) { return this._data.find(p=>p.id == id); } console.log("配置数据(IDanCfg)不存在"+id); return null; } getAllData(){ return this._data; } /** 主段位数量 */ getMainDanArr() : IDanCfg[]{ return this._mainDanList; } /** 获取每个段位的子段位 */ getSingleDanList(mainDan : number) : IDanCfg[]{ if(this._childDanMap.has(mainDan)) return this._childDanMap.get(mainDan); return null; } }