🐞 fix(军团): 练兵场等级奖励跨军团领取重复问题

This commit is contained in:
luying
2023-04-17 18:14:06 +08:00
parent cd15438f86
commit 3eb472030f
5 changed files with 244 additions and 108 deletions
@@ -9,6 +9,7 @@ export interface DicArmyTrainJuDian {
readonly id: number;
readonly trainLv: number;
readonly index: number;
// 训练场多个难度组成的gk,每个难度一个warId,而这个gkId指trainGk_info这张表的id
readonly trainInstances: Array<{hid: number, gkId: number, progress: number}>;
// 进阶奖励
@@ -18,6 +19,7 @@ export interface DicArmyTrainJuDian {
const DicArmyTrainJuDianKeys: KeysEnum<DicArmyTrainJuDian> = {
id: true,
index: true,
trainLv: true,
trainInstances: true,
jinjieReward: true,
@@ -25,12 +27,14 @@ const DicArmyTrainJuDianKeys: KeysEnum<DicArmyTrainJuDian> = {
};
export const dicArmyTrainJuDian = new Map<number, DicArmyTrainJuDian>();
export const dicTrainIdByIndex = new Map<number, Map<number, number>>(); // index => lv => trainId
export const dicLastGuildTrainIdOfLv = new Map<number, number>(); // 每级试炼场等级的最后据点id
export const dicFirstGuildTrainIdOfLv = new Map<number, number>(); // 每级试炼场等级的最先据点id
export function loadArmyTrainJuDian() {
dicArmyTrainJuDian.clear();
dicLastGuildTrainIdOfLv.clear();
dicFirstGuildTrainIdOfLv.clear();
dicTrainIdByIndex.clear();
let arr = readFileAndParse(FILENAME.DIC_ARMY_TRAIN_JU_DIAN);
arr.forEach(o => {
@@ -64,6 +68,10 @@ export function loadArmyTrainJuDian() {
dicFirstGuildTrainIdOfLv.set(o.trainLv, o.id);
}
}
if(!dicTrainIdByIndex.has(o.index)) {
dicTrainIdByIndex.set(o.index, new Map());
}
dicTrainIdByIndex.get(o.index).set(o.trainLv, o.id);
});
arr = undefined;
}