fix pvp每天第一次登录页面刷新对手
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* 体力系统
|
||||
*/
|
||||
import { PvpDefenseModel, Heroes, OppPlayers, Robot, PvpDefenseType, HeroScores } from '../db/PvpDefense';
|
||||
import { PvpDefenseModel, Heroes, OppPlayers, Robot, PvpDefenseType, HeroScores, pvpUpdateInter } from '../db/PvpDefense';
|
||||
import { RoleType, RoleModel } from '../db/Role';
|
||||
import { PVP_HERO_POS, ROBOT_NAME, REDIS_KEY, PVP_CONST } from '../consts';
|
||||
import { setPvpDefResult } from '../services/timeTaskService';
|
||||
@@ -338,7 +338,7 @@ export async function findPvpDefByRoleId(roleId: string) {
|
||||
return {pvpDefense: newPvpDefense, warId};
|
||||
}
|
||||
let {challengeCnt, challengeRefTime} = refresh(pvpDefense.challengeCnt, pvpDefense.challengeRefTime, pvpDefense.seasonEndTime);
|
||||
let { refOppCnt, refOppTime } = getRefOppCnt(pvpDefense.refOppCnt, pvpDefense.refOppTime); // 刷新次数
|
||||
let { refOppCnt, refOppTime, shouldRefOpp } = getRefOppCnt(pvpDefense.refOppCnt, pvpDefense.refOppTime); // 刷新次数
|
||||
if (challengeCnt != pvpDefense.challengeCnt ||refOppCnt != pvpDefense.refOppCnt) {
|
||||
await PvpDefenseModel.updateInfo( roleId, { challengeCnt, challengeRefTime, refOppCnt});
|
||||
pvpDefense.challengeCnt = challengeCnt;
|
||||
@@ -346,16 +346,18 @@ export async function findPvpDefByRoleId(roleId: string) {
|
||||
pvpDefense.refOppCnt = refOppCnt;
|
||||
pvpDefense.refOppTime = refOppTime;
|
||||
}
|
||||
return {pvpDefense, warId};
|
||||
return {pvpDefense, warId, shouldRefOpp};
|
||||
}
|
||||
|
||||
// 获取刷新对手次数及消耗
|
||||
export function getRefOppCnt(refOppCnt: number, refOppTime: Date) {
|
||||
let curTime = new Date();
|
||||
if(shouldRefresh(refOppTime, curTime, PVP_CONST.REFRESH_TIME)) {
|
||||
let shouldRefOpp = shouldRefresh(refOppTime, curTime, PVP_CONST.REFRESH_TIME);
|
||||
if(shouldRefOpp) {
|
||||
refOppCnt = 0; refOppTime = curTime;
|
||||
}
|
||||
return {
|
||||
shouldRefOpp,
|
||||
refOppCnt, refOppTime,
|
||||
consume: gameData.pvpRefreshConsume.get(refOppCnt + 1)
|
||||
}
|
||||
@@ -376,15 +378,26 @@ export async function findPvpDefAllByRoleId(roleId: string) {
|
||||
pvpDefense.seasonEndTime = seasonEndTime;
|
||||
}
|
||||
let {challengeCnt, challengeRefTime} = refresh(pvpDefense.challengeCnt, pvpDefense.challengeRefTime, pvpDefense.seasonEndTime);
|
||||
let { refOppCnt, refOppTime } = getRefOppCnt(pvpDefense.refOppCnt, pvpDefense.refOppTime); // 刷新次数
|
||||
if (challengeCnt != pvpDefense.challengeCnt || refOppCnt != pvpDefense.refOppCnt) {
|
||||
await PvpDefenseModel.updateInfo( roleId, { challengeCnt, challengeRefTime, refOppCnt, refOppTime});
|
||||
let { refOppCnt, refOppTime, shouldRefOpp } = getRefOppCnt(pvpDefense.refOppCnt, pvpDefense.refOppTime); // 刷新次数
|
||||
if (challengeCnt != pvpDefense.challengeCnt || refOppCnt != pvpDefense.refOppCnt || shouldRefOpp) {
|
||||
let update: pvpUpdateInter = {
|
||||
challengeCnt, challengeRefTime, refOppCnt, refOppTime
|
||||
};
|
||||
|
||||
if(shouldRefOpp) {
|
||||
let role = <RoleType>pvpDefense.role;
|
||||
let oppPlayers = await refreshEnemies(role, pvpDefense.score, pvpDefense.pLv);
|
||||
update.oppPlayers = oppPlayers;
|
||||
pvpDefense.oppPlayers = oppPlayers;
|
||||
}
|
||||
|
||||
await PvpDefenseModel.updateInfo( roleId, update);
|
||||
pvpDefense.challengeCnt = challengeCnt;
|
||||
pvpDefense.challengeRefTime = challengeRefTime;
|
||||
pvpDefense.refOppCnt = refOppCnt;
|
||||
pvpDefense.refOppTime = refOppTime;
|
||||
}
|
||||
return {pvpDefense, warId};
|
||||
return {pvpDefense, warId, shouldRefOpp};
|
||||
}
|
||||
|
||||
// 获取机器人阵容
|
||||
|
||||
Reference in New Issue
Block a user