66 lines
2.0 KiB
TypeScript
66 lines
2.0 KiB
TypeScript
// 物品表
|
||
import { readFileAndParse, parseGoodStr, } from '../util'
|
||
import { FILENAME, } from '../../consts'
|
||
import { RewardInter } from '../interface';
|
||
const _ = require('lodash');
|
||
|
||
export interface DicArtifactQuality {
|
||
// 唯一id,品质+品阶=唯一
|
||
uniqId: number;
|
||
// 品质,key1
|
||
quality: number;
|
||
// 品阶,key2
|
||
qualityStage: number;
|
||
// 这个品质下最大的等级
|
||
maxLv: number;
|
||
// 合成相关
|
||
// 可以合成到他这个品质的uniqId,即原料的品质+品阶
|
||
previousId: number;
|
||
// 下一阶uniqId
|
||
nextId: number;
|
||
// 作为狗粮的宝物品质uniqId
|
||
materialId: number;
|
||
// 作为狗粮的宝物的数量
|
||
materialCnt: number;
|
||
// 作为狗粮的是否需要同名 1-是 0-不是
|
||
materialGroup: number;
|
||
// 是否可以分解 1-是 0-不是
|
||
canDecompose: number;
|
||
// 是否可以一键合成 1-是 0-不是
|
||
canComposeAll: number;
|
||
// 这个品质可以替换的通用道具,id&count。分解同样用这个字段,不可分解填&
|
||
generalItem: RewardInter[];
|
||
}
|
||
|
||
type KeysEnum<T> = { [P in keyof Required<T>]: true };
|
||
const DicArtifactQualityKeys: KeysEnum<DicArtifactQuality> = {
|
||
uniqId: true,
|
||
quality: true,
|
||
qualityStage: true,
|
||
maxLv: true,
|
||
previousId: true,
|
||
nextId: true,
|
||
materialId: true,
|
||
materialCnt: true,
|
||
materialGroup: true,
|
||
canDecompose: true,
|
||
canComposeAll: true,
|
||
generalItem: true,
|
||
}
|
||
export const dicArtifactQuality = new Map<string, number>(); // quality+qualityStage
|
||
export const dicArtifactQualityById = new Map<number, DicArtifactQuality>(); // uniqId
|
||
|
||
export function loadArtifactQuality() {
|
||
dicArtifactQuality.clear();
|
||
dicArtifactQualityById.clear();
|
||
|
||
let arr = readFileAndParse(FILENAME.DIC_ARTIFACT_QUALITY);
|
||
|
||
arr.forEach(o => {
|
||
o.generalItem = parseGoodStr(o.generalItem);
|
||
dicArtifactQualityById.set(o.uniqId, _.pick(o, Object.keys(DicArtifactQualityKeys)));
|
||
dicArtifactQuality.set(`${o.quality}_${o.qualityStage}`, o.uniqId);
|
||
});
|
||
|
||
arr = undefined;
|
||
} |