pvp:巅峰之路修改
This commit is contained in:
@@ -53,6 +53,7 @@ export enum MAIL_TYPE {
|
||||
GUILD_DAILY_BOX = 24, // 军团每日活跃宝箱补领
|
||||
GUILD_FUND_BOX = 25, // 军团每日捐献宝箱补领
|
||||
GUILD_BOSS = 26, // 军团boss奖励
|
||||
PVP_BOX = 27, // pvp巅峰之路宝箱
|
||||
};
|
||||
|
||||
export const SEND_NAME = '系统';
|
||||
|
||||
@@ -56,6 +56,8 @@ export default class PvpDefense extends BaseModel {
|
||||
receivedBox: Array<number>;
|
||||
@prop({ required: true, default: 0 })
|
||||
seasonNum: number;
|
||||
@prop({ required: true, default: 0 })
|
||||
seasonWinNum: number; // 本赛季胜利次数
|
||||
@prop({ required: true, default: true })
|
||||
isFirstEntry: boolean;
|
||||
|
||||
|
||||
@@ -38,6 +38,12 @@ export default class PvpSeasonResult extends BaseModel {
|
||||
@prop({ required: true, type: () => HeroScore, default:[] })
|
||||
newHeroScores: HeroScore[];
|
||||
|
||||
@prop({ required: true, type: Number, default: [] })
|
||||
receivedBox: Array<number>;
|
||||
|
||||
@prop({ required: true, default: 0 })
|
||||
seasonWinNum: number; // 本赛季胜利次数
|
||||
|
||||
public static async updatePvpSeasonResult(roleId: string, seasonNum: number, update: PvpSeasonResultUpdate , lean = true) {
|
||||
delete update._id;
|
||||
let result: PvpSeasonResultType = await PvpSeasonResultModel.findOneAndUpdate({roleId, seasonNum}, {$set: update}, {upsert: true, new: true}).lean(lean);
|
||||
|
||||
@@ -240,6 +240,7 @@ export class PvpDataReturn {
|
||||
buyAttackCnt: number;
|
||||
challengeCnt: number;
|
||||
challengeRefTime: number;
|
||||
seasonWinNum: number;
|
||||
receivedBox: number[] = [];
|
||||
hisScore: number = 0;
|
||||
heroScores: HeroScoreReturn[] = [];
|
||||
@@ -249,6 +250,7 @@ export class PvpDataReturn {
|
||||
setPvpDefense(pvpDefense: PvpDefenseType) {
|
||||
this.score = pvpDefense.score;
|
||||
this.winStreakNum = pvpDefense.winStreakNum;
|
||||
this.seasonWinNum = pvpDefense.seasonWinNum;
|
||||
this.receivedBox = pvpDefense.receivedBox;
|
||||
this.hisScore = pvpDefense.hisScore;
|
||||
|
||||
|
||||
+29
-3
@@ -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() {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -187,5 +187,12 @@
|
||||
"sendName": "&",
|
||||
"content": "感谢您昨日为军团演武台所做的贡献,且有奖励尚未领取,现已发送至您的邮箱,请查收",
|
||||
"time": 720
|
||||
},
|
||||
{
|
||||
"id": 27,
|
||||
"title": "&",
|
||||
"sendName": "&",
|
||||
"content": "竞技新赛季开始啦,您在上赛季的巅峰之路中有奖励尚未领取,现已发送至您邮箱,请查收",
|
||||
"time": 720
|
||||
}
|
||||
]
|
||||
@@ -1,52 +1,212 @@
|
||||
[
|
||||
{
|
||||
"id": 1,
|
||||
"score": 500,
|
||||
"seasonNum": 1,
|
||||
"index": 1,
|
||||
"winTimes": 2,
|
||||
"reward": "11014&10"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"score": 1000,
|
||||
"seasonNum": 1,
|
||||
"index": 2,
|
||||
"winTimes": 4,
|
||||
"reward": "31001&200000"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"score": 1500,
|
||||
"seasonNum": 1,
|
||||
"index": 3,
|
||||
"winTimes": 6,
|
||||
"reward": "17044&10"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"score": 2000,
|
||||
"seasonNum": 1,
|
||||
"index": 4,
|
||||
"winTimes": 8,
|
||||
"reward": "31002&200"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"score": 2500,
|
||||
"seasonNum": 1,
|
||||
"index": 5,
|
||||
"winTimes": 10,
|
||||
"reward": "60004&1"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"score": 3000,
|
||||
"seasonNum": 1,
|
||||
"index": 6,
|
||||
"winTimes": 15,
|
||||
"reward": "22001&3"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"score": 3500,
|
||||
"seasonNum": 1,
|
||||
"index": 7,
|
||||
"winTimes": 20,
|
||||
"reward": "11003&10"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"score": 4000,
|
||||
"seasonNum": 1,
|
||||
"index": 8,
|
||||
"winTimes": 25,
|
||||
"reward": "17042&4"
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"score": 4500,
|
||||
"seasonNum": 1,
|
||||
"index": 9,
|
||||
"winTimes": 30,
|
||||
"reward": "17001&2"
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"score": 5000,
|
||||
"seasonNum": 1,
|
||||
"index": 10,
|
||||
"winTimes": 35,
|
||||
"reward": "41202&1"
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"seasonNum": 2,
|
||||
"index": 1,
|
||||
"winTimes": 2,
|
||||
"reward": "11014&10"
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"seasonNum": 2,
|
||||
"index": 2,
|
||||
"winTimes": 4,
|
||||
"reward": "31001&200000"
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"seasonNum": 2,
|
||||
"index": 3,
|
||||
"winTimes": 6,
|
||||
"reward": "17044&10"
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"seasonNum": 2,
|
||||
"index": 4,
|
||||
"winTimes": 8,
|
||||
"reward": "31002&200"
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"seasonNum": 2,
|
||||
"index": 5,
|
||||
"winTimes": 10,
|
||||
"reward": "60004&1"
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"seasonNum": 2,
|
||||
"index": 6,
|
||||
"winTimes": 15,
|
||||
"reward": "22001&3"
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"seasonNum": 2,
|
||||
"index": 7,
|
||||
"winTimes": 20,
|
||||
"reward": "11003&10"
|
||||
},
|
||||
{
|
||||
"id": 18,
|
||||
"seasonNum": 2,
|
||||
"index": 8,
|
||||
"winTimes": 25,
|
||||
"reward": "17042&4"
|
||||
},
|
||||
{
|
||||
"id": 19,
|
||||
"seasonNum": 2,
|
||||
"index": 9,
|
||||
"winTimes": 30,
|
||||
"reward": "17001&2"
|
||||
},
|
||||
{
|
||||
"id": 20,
|
||||
"seasonNum": 2,
|
||||
"index": 10,
|
||||
"winTimes": 35,
|
||||
"reward": "41202&1"
|
||||
},
|
||||
{
|
||||
"id": 21,
|
||||
"seasonNum": 3,
|
||||
"index": 1,
|
||||
"winTimes": 2,
|
||||
"reward": "11014&10"
|
||||
},
|
||||
{
|
||||
"id": 22,
|
||||
"seasonNum": 3,
|
||||
"index": 2,
|
||||
"winTimes": 4,
|
||||
"reward": "31001&200000"
|
||||
},
|
||||
{
|
||||
"id": 23,
|
||||
"seasonNum": 3,
|
||||
"index": 3,
|
||||
"winTimes": 6,
|
||||
"reward": "17044&10"
|
||||
},
|
||||
{
|
||||
"id": 24,
|
||||
"seasonNum": 3,
|
||||
"index": 4,
|
||||
"winTimes": 8,
|
||||
"reward": "31002&200"
|
||||
},
|
||||
{
|
||||
"id": 25,
|
||||
"seasonNum": 3,
|
||||
"index": 5,
|
||||
"winTimes": 10,
|
||||
"reward": "60004&1"
|
||||
},
|
||||
{
|
||||
"id": 26,
|
||||
"seasonNum": 3,
|
||||
"index": 6,
|
||||
"winTimes": 15,
|
||||
"reward": "22001&3"
|
||||
},
|
||||
{
|
||||
"id": 27,
|
||||
"seasonNum": 3,
|
||||
"index": 7,
|
||||
"winTimes": 20,
|
||||
"reward": "11003&10"
|
||||
},
|
||||
{
|
||||
"id": 28,
|
||||
"seasonNum": 3,
|
||||
"index": 8,
|
||||
"winTimes": 25,
|
||||
"reward": "17042&4"
|
||||
},
|
||||
{
|
||||
"id": 29,
|
||||
"seasonNum": 3,
|
||||
"index": 9,
|
||||
"winTimes": 30,
|
||||
"reward": "17001&2"
|
||||
},
|
||||
{
|
||||
"id": 30,
|
||||
"seasonNum": 3,
|
||||
"index": 10,
|
||||
"winTimes": 35,
|
||||
"reward": "41202&1"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user