pvp:重写pvp定时器任务逻辑
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
|
||||
import { Application, BackendSession, pinus, HandlerService, } from 'pinus';
|
||||
import { uniq, findWhere, findIndex } from 'underscore';
|
||||
import { gameData, getPvpBoxs, getPLvByScore } from '../../../pubUtils/data';
|
||||
@@ -5,11 +6,10 @@ import { refreshEnemies, getEnemies, getLvByScore, defaultHeroes, comsumeChallen
|
||||
import { RoleModel, RoleType } from '../../../db/Role';
|
||||
import { STATUS } from '../../../consts/statusCode';
|
||||
import { resResult, genCode } from '../../../pubUtils/util';
|
||||
|
||||
import { PvpDefenseModel, OppPlayers } from '../../../db/PvpDefense';
|
||||
import { pvpEndParamInter } from '../../../pubUtils/interface';
|
||||
import { PlayerDetail, PlayerDetailHero } from '../../../domain/battleField/guild';
|
||||
import { PVP_HERO_POS, PVP_HERO_ORDER, REDIS_KEY, LINEUP_NUM, TASK_TYPE } from '../../../consts';
|
||||
import { PVP_HERO_POS, PVP_HERO_ORDER, REDIS_KEY, LINEUP_NUM, TASK_TYPE, COUNTER } from '../../../consts';
|
||||
import { PVP } from '../../../pubUtils/dicParam';
|
||||
import { addItems } from '../../../services/rewardService';
|
||||
import { HeroModel } from '../../../db/Hero';
|
||||
@@ -18,10 +18,10 @@ import { BattleRecordModel } from '../../../db/BattleRecord';
|
||||
import { PvpRecordModel } from '../../../db/PvpRecord';
|
||||
import { handleCost } from '../../../services/rewardService';
|
||||
import { nowSeconds, getSeconds } from '../../../pubUtils/timeUtil';
|
||||
import { setPvpSeasonResult, resetPvpWarId, resetPvpSeasonTime } from '../../../services/timeTaskService';
|
||||
import { pvpSeasonEnd, resetPvpWarId, createNextPvpSeason } from '../../../services/timeTaskService';
|
||||
import { PvpSeasonResultModel } from '../../../db/PvpSeasonResult';
|
||||
import { PvpHistoryOppModel, PvpHistoryOppType } from '../../../db/PvpHistoryOpp';
|
||||
import { SystemConfigModel } from '../../../db/SystemConfig';
|
||||
import { PVPConfigModel } from '../../../db/SystemConfig';
|
||||
import { Rank } from '../../../services/rankService';
|
||||
import { checkActivityTask, checkTask, checkTaskInPvpEnd } from '../../../services/taskService';
|
||||
|
||||
@@ -75,8 +75,9 @@ export class PvpHandler {
|
||||
}
|
||||
|
||||
async debugPvpSeasonReset(msg: {}, session: BackendSession) {
|
||||
let { seasonNum, seasonEndTime } = await setPvpSeasonResult({ name: 'exce setPvpSeasonResult debug' });
|
||||
return resResult(STATUS.SUCCESS, { seasonNum, seasonEndTime })
|
||||
await pvpSeasonEnd({ name: 'exce setPvpSeasonResult debug' });
|
||||
let systemConfig = await createNextPvpSeason();
|
||||
return resResult(STATUS.SUCCESS, { seasonNum: systemConfig.seasonNum, seasonEndTime: systemConfig.seasonEndTime })
|
||||
}
|
||||
|
||||
async debugPvpWarReset(msg: {}, session: BackendSession) {
|
||||
@@ -100,6 +101,7 @@ export class PvpHandler {
|
||||
return resResult(STATUS.SUCCESS, { challengeCnt, challengeRefTime });
|
||||
}
|
||||
|
||||
//1获取主界面
|
||||
async getData(msg: {}, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let { pvpDefense, warId, seasonEndTime } = await findPvpDefAllByRoleId(roleId);
|
||||
@@ -200,7 +202,7 @@ export class PvpHandler {
|
||||
const pvpDefense = await PvpDefenseModel.findByRoleId(roleId);
|
||||
if (!pvpDefense) return resResult(STATUS.PVP_NOT_OPEN);
|
||||
// 检查挑战次数
|
||||
let { seasonEndTime } = await SystemConfigModel.findSystemConfig();
|
||||
let { seasonEndTime } = await PVPConfigModel.findCurPVPConfig();
|
||||
let { challengeCnt } = refresh(pvpDefense.challengeCnt, pvpDefense.challengeRefTime, seasonEndTime);
|
||||
if (challengeCnt == 0) {
|
||||
return resResult(STATUS.PVP_CHALLENGE_TIMES_NOT_ENOUGH);
|
||||
@@ -286,7 +288,7 @@ export class PvpHandler {
|
||||
await BattleRecordModel.updateBattleRecordByCode(battleCode, {
|
||||
$set: { status: isSuccess ? 1 : 2 }
|
||||
}, true);
|
||||
let { seasonEndTime } = await SystemConfigModel.findSystemConfig();
|
||||
let { seasonEndTime } = await PVPConfigModel.findCurPVPConfig();
|
||||
|
||||
// 减少挑战次数
|
||||
let { challengeCnt, challengeRefTime } = comsumeChallengeCnt(pvpDefense.challengeCnt, pvpDefense.challengeRefTime, seasonEndTime);
|
||||
@@ -321,6 +323,7 @@ export class PvpHandler {
|
||||
});
|
||||
}
|
||||
|
||||
//3. 保存防守阵容
|
||||
async saveDefense(msg: { heroes: Array<{ actorId: number, dataId: number, order: number }>, isDefaultHero: boolean }, session: BackendSession) {
|
||||
let { heroes, isDefaultHero } = msg;
|
||||
let roleId = session.get('roleId');
|
||||
@@ -330,7 +333,7 @@ export class PvpHandler {
|
||||
heroes = uniq(heroes, function (item) {
|
||||
return item.order;
|
||||
});
|
||||
let { seasonEndTime } = await SystemConfigModel.findSystemConfig();
|
||||
let { seasonEndTime } = await PVPConfigModel.findCurPVPConfig();
|
||||
let { heroes: defHeros, challengeCnt: lastChallengeCnt, challengeRefTime: lastChallengeRefTime } = await PvpDefenseModel.findByRoleId(roleId);
|
||||
let defCe = 0;
|
||||
let { challengeCnt, challengeRefTime } = refresh(lastChallengeCnt, lastChallengeRefTime, seasonEndTime);
|
||||
@@ -404,6 +407,7 @@ export class PvpHandler {
|
||||
|
||||
}
|
||||
|
||||
//8. 排行榜
|
||||
async getRank(msg: {}, session: BackendSession) {
|
||||
|
||||
let roleId = session.get('roleId');
|
||||
@@ -420,6 +424,7 @@ export class PvpHandler {
|
||||
return resResult(STATUS.SUCCESS, { ranks, myRank });
|
||||
}
|
||||
|
||||
//2.5. 获取对手详细信息(排行榜,战报,阵容查看)
|
||||
async getPlayerDetail(msg: { roleId: string }, session: BackendSession) {
|
||||
|
||||
let roleId = session.get('roleId');
|
||||
@@ -470,13 +475,14 @@ export class PvpHandler {
|
||||
return resResult(STATUS.SUCCESS, result);
|
||||
}
|
||||
|
||||
//7. 领取巅峰之路奖励
|
||||
async receiveBox(msg: { id: number }, session: BackendSession) {
|
||||
let { id } = msg;
|
||||
let roleId = session.get('roleId');
|
||||
let sid: string = session.get('sid');
|
||||
let roleName = session.get('roleName');
|
||||
const funcs: number[] = session.get('funcs');
|
||||
let { seasonEndTime } = await SystemConfigModel.findSystemConfig();
|
||||
let { seasonEndTime } = await PVPConfigModel.findCurPVPConfig();
|
||||
let { hisScore, receivedBox, challengeCnt: lastChallengeCnt, challengeRefTime: lastChallengeRefTime } = await PvpDefenseModel.findByRoleIdIncludeAll(roleId);
|
||||
let pvpBoxs = getPvpBoxs();
|
||||
let pvpBox = findWhere(pvpBoxs, { id });
|
||||
@@ -495,6 +501,7 @@ export class PvpHandler {
|
||||
return resResult(STATUS.SUCCESS, { goods: result, receivedBox, challengeCnt, challengeRefTime });
|
||||
}
|
||||
|
||||
//9. 战报
|
||||
async getRec(msg: {}, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let pvpRecords = await PvpRecordModel.getRecByRoleId(roleId);
|
||||
|
||||
Reference in New Issue
Block a user