squidGame/tgx-games-client/assets/module_arean/scripts/DataConfig/Managers/DanDataManager.ts

69 lines
1.9 KiB
TypeScript

import { Logger } from "../../../../core_tgx/base/utils/Logger";
import { IDanCfg } from "../../../../module_basic/shared/configs/interface/IDanCfg";
export default class DanDataManager
{
private _data: Array<IDanCfg> | undefined;
private _mainDanList : IDanCfg[];
private _childDanMap : Map<number,IDanCfg[]>;
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<number,IDanCfg[]>();
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;
}
}