69 lines
1.9 KiB
TypeScript
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;
|
|
}
|
|
|
|
}
|