no message

This commit is contained in:
luying
2022-02-25 19:46:33 +08:00
parent 4512265566
commit f5de3d5628

View File

@@ -159,13 +159,28 @@ export class PvpHandler {
let pvpDefense = await PvpDefenseModel.findByRoleId(roleId);
if (!pvpDefense) return resResult(STATUS.PVP_NOT_OPEN);
// 检查挑战次数
let seasonNum: number = this.app.get('pvpSeasonNum');
let seasonEndTime: number = this.app.get('pvpSeasonEndTime');
let { challengeCnt, challengeRefTime } = refChallengeCnt(pvpDefense.challengeCnt, pvpDefense.challengeRefTime, seasonEndTime);
if (challengeCnt == 0) {
return resResult(STATUS.PVP_CHALLENGE_TIMES_NOT_ENOUGH);
}
await PvpDefenseModel.updateInfo(roleId, { challengeCnt, challengeRefTime });
let { oppPlayers } = pvpDefense;
// 对手记录更新
await PvpHistoryOppModel.setStatus(roleId, oppRoleId, 1);
let update: pvpUpdateInter = {};
// 刷新对手
const role = await RoleModel.findByRoleId(roleId, null, true);
let oppPlayers = await refreshEnemies(role, seasonNum, pvpDefense.score ,pvpDefense.attack.score, pvpDefense.attack.pLv||1);
update.oppPlayers = oppPlayers;
// 减少挑战次数
let refChallengeObj = refChallengeCnt(pvpDefense.challengeCnt, pvpDefense.challengeRefTime, seasonEndTime);
refChallengeObj.challengeCnt--;
update = {...update, ...refChallengeObj};
pvpDefense = await PvpDefenseModel.updateInfo(roleId, update);
let curOpp = oppPlayers.find(cur => cur.roleId == oppRoleId);
if (!curOpp) return resResult(STATUS.PVP_ROLE_NOT_FOUND)
@@ -183,8 +198,14 @@ export class PvpHandler {
}, true);
await checkTask(roleId, sid, TASK_TYPE.PVP, 1, true, {});
let result = new PvpDataReturn(); // 返回对象
result.setPvpDefense(pvpDefense);
let oppPlayersReturn = await getEnemies(pvpDefense.oppPlayers, pvpDefense.winStreakNum);
result.setOppPlayers(oppPlayersReturn);
return resResult(STATUS.SUCCESS, {
battleCode
battleCode,
...pick(result, ['oppPlayers', 'challengeCnt', 'challengeRefTime'])
});
}
@@ -232,25 +253,13 @@ export class PvpHandler {
// 战报记录
await PvpRecordModel.createRec({ roleId1: roleId, roleId2: robotIdComBack(oppRoleId), warId: BattleRecord.battleId, attackInfo, defenseInfo, createTime: nowSeconds() });
// 对手记录更新
await PvpHistoryOppModel.setStatus(roleId, oppRoleId, 1);
// 刷新对手
let seasonNum: number = this.app.get('pvpSeasonNum');
let seasonEndTime: number = this.app.get('pvpSeasonEndTime');
let oppPlayers = await refreshEnemies(role, seasonNum, pvpDefense.score ,pvpDefense.attack.score, pvpDefense.attack.pLv||1);
update.oppPlayers = oppPlayers;
// 更新battleRecord
await BattleRecordModel.updateBattleRecordByCode(battleCode, {
$set: { status: isSuccess ? 1 : 2 }
}, true);
// 减少挑战次数
let refChallengeObj = refChallengeCnt(pvpDefense.challengeCnt, pvpDefense.challengeRefTime, seasonEndTime);
refChallengeObj.challengeCnt--;
update = {...update, ...refChallengeObj};
pvpDefense = await PvpDefenseModel.updateInfoAndInclude(roleId, update);