✨ feat(稷下学宫): ff931afe4到7421822f6
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
/**
|
||||
* 科技树配置
|
||||
*/
|
||||
|
||||
import { parseGoodStr, parseNumberList, readFileAndParse } from '../util'
|
||||
import { FILENAME } from '../../consts'
|
||||
import { RewardInter } from '../interface';
|
||||
const _ = require('lodash');
|
||||
|
||||
export interface DicRougeTech {
|
||||
readonly id: number;
|
||||
readonly techId: number; // 科技点
|
||||
readonly rowId: number; // 列
|
||||
readonly index: number; // 第几个
|
||||
readonly preTechId: number[]; // 前置节点
|
||||
readonly cost: RewardInter[]; // 消耗的科技点
|
||||
}
|
||||
|
||||
type KeysEnum<T> = { [P in keyof Required<T>]: true };
|
||||
const DicRougeTechKeys: KeysEnum<DicRougeTech> = {
|
||||
id: true,
|
||||
techId: true,
|
||||
rowId: true,
|
||||
index: true,
|
||||
preTechId: true,
|
||||
cost: true,
|
||||
}
|
||||
|
||||
export const dicRougeTech = new Map<number, DicRougeTech>();
|
||||
export const dicRougeTechIdByRow = new Map<number, number[]>();
|
||||
|
||||
export function loadRougeTech() {
|
||||
dicRougeTech.clear();
|
||||
dicRougeTechIdByRow.clear();
|
||||
|
||||
let arr = readFileAndParse(FILENAME.DIC_ROUGE_TECH);
|
||||
|
||||
arr.forEach(o => {
|
||||
o.preTechId = parseNumberList(o.preTechId);
|
||||
o.cost = parseGoodStr(o.cost);
|
||||
dicRougeTech.set(o.techId, _.pick(o, Object.keys(DicRougeTechKeys)));
|
||||
|
||||
if(!dicRougeTechIdByRow.has(o.rowId)) dicRougeTechIdByRow.set(o.rowId, []);
|
||||
dicRougeTechIdByRow.get(o.rowId)?.push(o.techId);
|
||||
});
|
||||
arr = undefined;
|
||||
}
|
||||
Reference in New Issue
Block a user