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 { RoleType, RoleModel } from '../db/Role';
|
||||||
import { PVP_HERO_POS, ROBOT_NAME, REDIS_KEY, PVP_CONST } from '../consts';
|
import { PVP_HERO_POS, ROBOT_NAME, REDIS_KEY, PVP_CONST } from '../consts';
|
||||||
import { setPvpDefResult } from '../services/timeTaskService';
|
import { setPvpDefResult } from '../services/timeTaskService';
|
||||||
@@ -338,7 +338,7 @@ export async function findPvpDefByRoleId(roleId: string) {
|
|||||||
return {pvpDefense: newPvpDefense, warId};
|
return {pvpDefense: newPvpDefense, warId};
|
||||||
}
|
}
|
||||||
let {challengeCnt, challengeRefTime} = refresh(pvpDefense.challengeCnt, pvpDefense.challengeRefTime, pvpDefense.seasonEndTime);
|
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) {
|
if (challengeCnt != pvpDefense.challengeCnt ||refOppCnt != pvpDefense.refOppCnt) {
|
||||||
await PvpDefenseModel.updateInfo( roleId, { challengeCnt, challengeRefTime, refOppCnt});
|
await PvpDefenseModel.updateInfo( roleId, { challengeCnt, challengeRefTime, refOppCnt});
|
||||||
pvpDefense.challengeCnt = challengeCnt;
|
pvpDefense.challengeCnt = challengeCnt;
|
||||||
@@ -346,16 +346,18 @@ export async function findPvpDefByRoleId(roleId: string) {
|
|||||||
pvpDefense.refOppCnt = refOppCnt;
|
pvpDefense.refOppCnt = refOppCnt;
|
||||||
pvpDefense.refOppTime = refOppTime;
|
pvpDefense.refOppTime = refOppTime;
|
||||||
}
|
}
|
||||||
return {pvpDefense, warId};
|
return {pvpDefense, warId, shouldRefOpp};
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取刷新对手次数及消耗
|
// 获取刷新对手次数及消耗
|
||||||
export function getRefOppCnt(refOppCnt: number, refOppTime: Date) {
|
export function getRefOppCnt(refOppCnt: number, refOppTime: Date) {
|
||||||
let curTime = new 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;
|
refOppCnt = 0; refOppTime = curTime;
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
|
shouldRefOpp,
|
||||||
refOppCnt, refOppTime,
|
refOppCnt, refOppTime,
|
||||||
consume: gameData.pvpRefreshConsume.get(refOppCnt + 1)
|
consume: gameData.pvpRefreshConsume.get(refOppCnt + 1)
|
||||||
}
|
}
|
||||||
@@ -376,15 +378,26 @@ export async function findPvpDefAllByRoleId(roleId: string) {
|
|||||||
pvpDefense.seasonEndTime = seasonEndTime;
|
pvpDefense.seasonEndTime = seasonEndTime;
|
||||||
}
|
}
|
||||||
let {challengeCnt, challengeRefTime} = refresh(pvpDefense.challengeCnt, pvpDefense.challengeRefTime, pvpDefense.seasonEndTime);
|
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) {
|
if (challengeCnt != pvpDefense.challengeCnt || refOppCnt != pvpDefense.refOppCnt || shouldRefOpp) {
|
||||||
await PvpDefenseModel.updateInfo( roleId, { challengeCnt, challengeRefTime, refOppCnt, refOppTime});
|
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.challengeCnt = challengeCnt;
|
||||||
pvpDefense.challengeRefTime = challengeRefTime;
|
pvpDefense.challengeRefTime = challengeRefTime;
|
||||||
pvpDefense.refOppCnt = refOppCnt;
|
pvpDefense.refOppCnt = refOppCnt;
|
||||||
pvpDefense.refOppTime = refOppTime;
|
pvpDefense.refOppTime = refOppTime;
|
||||||
}
|
}
|
||||||
return {pvpDefense, warId};
|
return {pvpDefense, warId, shouldRefOpp};
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取机器人阵容
|
// 获取机器人阵容
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import Role, { } from './Role';
|
|||||||
import PvpDef, { } from './PvpDefense';
|
import PvpDef, { } from './PvpDefense';
|
||||||
import { PVP_PLAYER_POS, PVP_HERO_POS } from '../consts';
|
import { PVP_PLAYER_POS, PVP_HERO_POS } from '../consts';
|
||||||
|
|
||||||
interface pvpUpdateInter {
|
export interface pvpUpdateInter {
|
||||||
_id?: string;
|
_id?: string;
|
||||||
oppPlayers?: OppPlayers[];
|
oppPlayers?: OppPlayers[];
|
||||||
hisScore?: number;
|
hisScore?: number;
|
||||||
|
|||||||
Reference in New Issue
Block a user