pvp:巅峰之路修改

This commit is contained in:
luying
2022-05-24 21:23:18 +08:00
parent a4dfb463ed
commit e2233c9888
11 changed files with 268 additions and 34 deletions
+29 -3
View File
@@ -31,7 +31,7 @@ import { dicPvpTeamLevel, loadPvpTeamLevel } from './dictionary/DicPvpTeamLevel'
import { dicPvpRefreshConsume, maxPvpRefreshCnt, loadPvpRefreshConsume } from './dictionary/DicPvpRefreshConsume';
import { dicHeroRewads, loadPvpHeroReward } from './dictionary/DicPvpHeroReward';
import { dicRankRewads, dicRankMax, loadPvpRankReward } from './dictionary/DicPvpRankReward';
import { dicPvpBoxs, loadPvpBox } from './dictionary/DicPvpBox';
import { DicPvpBox, dicPvpBoxesBySeasonNum, dicPvpBoxs, loadPvpBox } from './dictionary/DicPvpBox';
import { dicGuildAuth, loadGuildAuth } from './dictionary/DicGuildAuth';
import { dicCenterBase, dicEquipPriduceBase, dicBossBase, dicTrainBase, dicDonateBase, dicWishPoolBase, dicStoreBase, dicStructureConsume, dicBossBaseByBossLv, loadStructure } from "./dictionary/DicStructure";
import { dicGuildActiveDayReward, loadGuildActiveDayReward } from './dictionary/DicGuildActiveDayReward';
@@ -157,6 +157,7 @@ export const gameData = {
pvpHeroRewards: dicHeroRewads,
pvpRankRewards: dicRankRewads,
pvpBoxs: dicPvpBoxs,
pvpBoxesBySeasonNum: dicPvpBoxesBySeasonNum,
pvpRankMax: dicRankMax,
guildAuth: dicGuildAuth,
centerBase: dicCenterBase,
@@ -468,8 +469,33 @@ export function getPvpRankRewardsByRank(rankLv: number) {
return gameData.pvpRankMax.max;
}
export function getPvpBoxs() {
return gameData.pvpBoxs;
function getPvpBoxKeysBySeasonNum(seasonNum: number) {
if(gameData.pvpBoxesBySeasonNum.has(seasonNum)) {
return gameData.pvpBoxesBySeasonNum.get(seasonNum);
} else {
let result = new Map<number, string>();
for(let [_seasonNum, key] of gameData.pvpBoxesBySeasonNum) {
result = key;
if(_seasonNum >= seasonNum) break;
}
return result
}
}
export function getPvpBoxBySeasonNumAndIndex(seasonNum: number, index: number) {
let indexToKey = getPvpBoxKeysBySeasonNum(seasonNum);
let key = indexToKey?.get(index);
return key? gameData.pvpBoxs.get(key): null;
}
export function getPvpBoxsBySeasonNum(seasonNum: number) {
let result: DicPvpBox[] = []
let indexToKey = getPvpBoxKeysBySeasonNum(seasonNum);
for(let [_, key] of indexToKey) {
let pvpBox = gameData.pvpBoxs.get(key);
if(pvpBox) result.push(pvpBox);
}
return result;
}
export function getResultMaxRank() {
+13 -5
View File
@@ -2,21 +2,29 @@ import { readFileAndParse, parseGoodStr } from '../util'
import { FILENAME } from '../../consts'
import { RewardInter } from '../interface';
export interface DicPvpBox {
readonly id: number;
readonly score: number;
readonly seasonNum: number;
readonly index: number;
readonly winTimes: number;
readonly reward: Array<RewardInter>;
}
export const dicPvpBoxs = new Array<DicPvpBox>();
export const dicPvpBoxs = new Map<string, DicPvpBox>();
export const dicPvpBoxesBySeasonNum = new Map<number, Map<number, string>>();
export function loadPvpBox() {
dicPvpBoxs.splice(0, dicPvpBoxs.length);
dicPvpBoxs.clear();
dicPvpBoxesBySeasonNum.clear();
let arr = readFileAndParse(FILENAME.DIC_PVP_BOX);
arr.forEach(o => {
o.reward = parseGoodStr(o.reward);
dicPvpBoxs.push(o);
let key = `${o.seasonNum}_${o.index}`;
dicPvpBoxs.set(key, o);
if(!dicPvpBoxesBySeasonNum.has(o.seasonNum)) {
dicPvpBoxesBySeasonNum.set(o.seasonNum, new Map());
}
dicPvpBoxesBySeasonNum.get(o.seasonNum).set(o.index, key);
});
arr = undefined;
}