pvp:赛季奖励
This commit is contained in:
@@ -30,7 +30,7 @@ import { dicPvpOpponent, loadPvpOpponent } from './dictionary/DicPvpOpponent';
|
||||
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 { dicRankRewads, dicRankMax, loadPvpRankReward, DicRankRewads } from './dictionary/DicPvpRankReward';
|
||||
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";
|
||||
@@ -468,14 +468,44 @@ function getMaxPvpHeroRewards() {
|
||||
}, gameData.pvpHeroRewards[0])
|
||||
}
|
||||
|
||||
export function getPvpRankRewardsByRank(rankLv: number) {
|
||||
|
||||
function getPvpRankRewardsBySeasonNum(seasonNum: number) {
|
||||
if(gameData.pvpRankRewards.has(seasonNum)) {
|
||||
return gameData.pvpRankRewards.get(seasonNum);
|
||||
} else {
|
||||
let result: DicRankRewads[] = [];
|
||||
for(let [_seasonNum, ranks] of gameData.pvpRankRewards) {
|
||||
result = ranks;
|
||||
if(_seasonNum >= seasonNum) break;
|
||||
}
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export function getPvpRankMaxRewardsBySeasonNum(seasonNum: number) {
|
||||
if(gameData.pvpRankMax.has(seasonNum)) {
|
||||
return gameData.pvpRankMax.get(seasonNum);
|
||||
} else {
|
||||
let result: DicRankRewads = undefined;
|
||||
for(let [_seasonNum, max] of gameData.pvpRankMax) {
|
||||
result = max;
|
||||
if(_seasonNum >= seasonNum) break;
|
||||
}
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
export function getPvpRankRewardsByRank(seasonNum: number, rankLv: number) {
|
||||
if(rankLv == 0) return null
|
||||
for (let item of gameData.pvpRankRewards) {
|
||||
let ranks = getPvpRankRewardsBySeasonNum(seasonNum)??[];
|
||||
|
||||
for (let item of ranks) {
|
||||
if ((item.max >= rankLv || item.max == -1) && rankLv >= item.min) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
return gameData.pvpRankMax.max;
|
||||
return getPvpRankMaxRewardsBySeasonNum(seasonNum);
|
||||
}
|
||||
|
||||
function getPvpBoxKeysBySeasonNum(seasonNum: number) {
|
||||
@@ -507,10 +537,6 @@ export function getPvpBoxsBySeasonNum(seasonNum: number) {
|
||||
return result;
|
||||
}
|
||||
|
||||
export function getResultMaxRank() {
|
||||
return gameData.pvpRankMax.max;
|
||||
}
|
||||
|
||||
export function getStructureConsume(structureId: number, level: number) {
|
||||
return gameData.structureConsume.get(structureId).get(level);
|
||||
}
|
||||
@@ -659,7 +685,6 @@ export function getAuctionRewardByPoolId(poolId: number) {
|
||||
* @param rank 成员在军团内部排名
|
||||
*/
|
||||
export function getCityActivityRewards(type: number, guildRank: number, rank: number) {
|
||||
console.log('######## getCityActivityRewards', type, guildRank, rank);
|
||||
let ranksReward = gameData.cityActivityReward.get(type) || [];
|
||||
let dic = ranksReward.find(cur => {
|
||||
return cur.guildRank == guildRank && (rank >= cur.min && (rank <= cur.max || cur.max == 0));
|
||||
|
||||
@@ -4,6 +4,7 @@ import { RewardInter } from '../interface';
|
||||
|
||||
export interface DicRankRewads {
|
||||
readonly id: number;
|
||||
readonly seasonNum: number;
|
||||
readonly min: number;
|
||||
readonly max: number;
|
||||
readonly reward: Array<RewardInter>;
|
||||
@@ -11,20 +12,24 @@ export interface DicRankRewads {
|
||||
}
|
||||
|
||||
|
||||
export const dicRankRewads = new Array<DicRankRewads>();
|
||||
export const dicRankMax: { max: DicRankRewads } = { max: undefined };
|
||||
export const dicRankRewads = new Map<number, DicRankRewads[]>();
|
||||
export const dicRankMax = new Map<number, DicRankRewads>();
|
||||
export function loadPvpRankReward() {
|
||||
dicRankRewads.splice(0, dicRankRewads.length);
|
||||
dicRankMax.max = undefined;
|
||||
dicRankRewads.clear();
|
||||
dicRankMax.clear();
|
||||
|
||||
let arr = readFileAndParse(FILENAME.DIC_PVP_RANK_REWARD);
|
||||
|
||||
arr.forEach(o => {
|
||||
o.reward = parseGoodStr(o.reward);
|
||||
if (!dicRankMax.max || o.min > dicRankMax.max.min) {
|
||||
dicRankMax.max = o;
|
||||
if(!dicRankRewads.has(o.seasonNum)) {
|
||||
dicRankRewads.set(o.seasonNum, []);
|
||||
}
|
||||
dicRankRewads.get(o.seasonNum).push(o);
|
||||
|
||||
if (!dicRankMax.has(o.seasonNum) || o.min > dicRankMax.get(o.seasonNum).min) {
|
||||
dicRankMax.set(o.seasonNum, o);
|
||||
}
|
||||
dicRankRewads.push(o);
|
||||
});
|
||||
arr = undefined;
|
||||
}
|
||||
Reference in New Issue
Block a user