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

This commit is contained in:
luying
2023-04-17 17:26:21 +08:00
parent cd15438f86
commit 3eb472030f
5 changed files with 244 additions and 108 deletions

View File

@@ -38,7 +38,7 @@ import { dicGuildActiveWeekReward, loadGuildActiveWeekReward } from './dictionar
import { dicGuildActiveWays, loadGuildActiveWays } from './dictionary/DicGuildActiveWays';
import { dicGuildPosition, loadGuildPosition } from "./dictionary/DicGuildPosition";
import { dicMail, loadMail } from "./dictionary/DicMail";
import { dicArmyTrainJuDian, loadArmyTrainJuDian, dicLastGuildTrainIdOfLv, dicFirstGuildTrainIdOfLv } from './dictionary/DicArmyTrainJuDian';
import { dicArmyTrainJuDian, loadArmyTrainJuDian, dicLastGuildTrainIdOfLv, dicFirstGuildTrainIdOfLv, dicTrainIdByIndex } from './dictionary/DicArmyTrainJuDian';
import { dicTrainSoloReward, loadTrainSoloReward } from './dictionary/DicTrainSoloReward';
import { RewardInter } from "./interface";
import { dicArmyDevelopConsume, loadArmyDevelopConsume } from './dictionary/DicArmyDevelopConsume';
@@ -346,6 +346,7 @@ export const gameData = {
gvgReviveGold: new Map<number|'max', number>(),
dicPushMessage: dicPushMessage,
guildQuitCd: new Array<{day: number, minute: number}>(),
trainIdByIndex: dicTrainIdByIndex
};
// 在此提供一些原先在gamedata中提供的方法以便更方便获取gameData数据

View File

@@ -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;
}