活动:月卡权限
This commit is contained in:
@@ -26,6 +26,7 @@ import { checkTask } from '../services/taskService';
|
||||
import { sendMailByContent } from './mailService';
|
||||
import { RoleRankInfo } from '../domain/rank';
|
||||
import { reportTAEvent } from './sdkService';
|
||||
import { getVipPvpChallengeMaxCnt } from './activity/monthlyTicketService';
|
||||
|
||||
/**
|
||||
* 返回对手三人信息
|
||||
@@ -296,9 +297,10 @@ export function getLvByScore(heroScores: HeroScore[]) {
|
||||
return getPLvByScore(score);
|
||||
}
|
||||
|
||||
export function refChallengeCnt(challengeCnt: number, challengeRefTime: number, seasonEndTime: number) {
|
||||
export async function refChallengeCnt(challengeCnt: number, challengeRefTime: number, seasonEndTime: number, roleId: string, vipStartTime?: number) {
|
||||
let hasChanged = false;
|
||||
if (challengeCnt >= PVP.PVP_CHALLENGE_COUNTS) {
|
||||
let initCount = await getVipPvpChallengeMaxCnt(roleId, vipStartTime)
|
||||
if (challengeCnt >= initCount) {
|
||||
return { hasChanged, challengeCnt, challengeRefTime: nowSeconds() };
|
||||
}
|
||||
let period = PVP.PVP_CHALLENGE_NORMALTIMES * 60;
|
||||
@@ -312,20 +314,22 @@ export function refChallengeCnt(challengeCnt: number, challengeRefTime: number,
|
||||
challengeRefTime = challengeRefTime + period * num;
|
||||
hasChanged = true;
|
||||
}
|
||||
challengeCnt = challengeCnt > PVP.PVP_CHALLENGE_COUNTS ? PVP.PVP_CHALLENGE_COUNTS : challengeCnt;
|
||||
challengeCnt = challengeCnt > initCount ? initCount : challengeCnt;
|
||||
return { hasChanged, challengeCnt, challengeRefTime };
|
||||
}
|
||||
|
||||
export function comsumeChallengeCnt(challengeCnt: number, challengeRefTime: number, seasonEndTime: number) {
|
||||
export async function comsumeChallengeCnt(challengeCnt: number, challengeRefTime: number, seasonEndTime: number, roleId: string) {
|
||||
let initCount = await getVipPvpChallengeMaxCnt(roleId)
|
||||
|
||||
challengeCnt--;
|
||||
if (challengeCnt >= PVP.PVP_CHALLENGE_COUNTS) {
|
||||
if (challengeCnt >= initCount) {
|
||||
return { challengeCnt, challengeRefTime };
|
||||
}
|
||||
if (challengeCnt == PVP.PVP_CHALLENGE_COUNTS - 1) {
|
||||
if (challengeCnt == initCount - 1) {
|
||||
challengeRefTime = nowSeconds();
|
||||
return { challengeCnt, challengeRefTime };
|
||||
}
|
||||
return refChallengeCnt(challengeCnt, challengeRefTime, seasonEndTime);
|
||||
return refChallengeCnt(challengeCnt, challengeRefTime, seasonEndTime, roleId);
|
||||
}
|
||||
|
||||
export async function sendLastSeasonRewardIfNotSent(pvpDefense: PvpDefenseType) {
|
||||
@@ -569,13 +573,14 @@ export async function sendPVPRewardToUser(pvpDefense: PvpDefenseType, seasonNum:
|
||||
async function resetPvpScores(pvpDefense: PvpDefenseType, seasonNum: number, pvpSeasonResult: PvpSeasonResultType) {
|
||||
let { roleId, attack, defense } = pvpDefense;
|
||||
let { newHeroScores, newScore } = pvpSeasonResult;
|
||||
let initCount = await getVipPvpChallengeMaxCnt(roleId)
|
||||
|
||||
let newAttack = <Attack>calLineupScore(attack, newHeroScores);
|
||||
let newDefense = <Defense>calLineupScore(defense, newHeroScores);
|
||||
|
||||
pvpDefense = await PvpDefenseModel.updateInfoAndInclude(roleId, {
|
||||
heroScores: newHeroScores, score: newScore, attack: newAttack, defense: newDefense,
|
||||
seasonNum, challengeCnt: PVP.PVP_CHALLENGE_COUNTS, challengeRefTime: 0, winStreakNum: 0, isFirstEntry: true
|
||||
seasonNum, challengeCnt: initCount, challengeRefTime: 0, winStreakNum: 0, isFirstEntry: true
|
||||
});
|
||||
return pvpDefense;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user