no message

This commit is contained in:
luying
2022-02-25 19:46:33 +08:00
parent 4512265566
commit f5de3d5628
@@ -159,13 +159,28 @@ export class PvpHandler {
let pvpDefense = await PvpDefenseModel.findByRoleId(roleId); let pvpDefense = await PvpDefenseModel.findByRoleId(roleId);
if (!pvpDefense) return resResult(STATUS.PVP_NOT_OPEN); if (!pvpDefense) return resResult(STATUS.PVP_NOT_OPEN);
// 检查挑战次数 // 检查挑战次数
let seasonNum: number = this.app.get('pvpSeasonNum');
let seasonEndTime: number = this.app.get('pvpSeasonEndTime'); let seasonEndTime: number = this.app.get('pvpSeasonEndTime');
let { challengeCnt, challengeRefTime } = refChallengeCnt(pvpDefense.challengeCnt, pvpDefense.challengeRefTime, seasonEndTime); let { challengeCnt, challengeRefTime } = refChallengeCnt(pvpDefense.challengeCnt, pvpDefense.challengeRefTime, seasonEndTime);
if (challengeCnt == 0) { if (challengeCnt == 0) {
return resResult(STATUS.PVP_CHALLENGE_TIMES_NOT_ENOUGH); 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); let curOpp = oppPlayers.find(cur => cur.roleId == oppRoleId);
if (!curOpp) return resResult(STATUS.PVP_ROLE_NOT_FOUND) if (!curOpp) return resResult(STATUS.PVP_ROLE_NOT_FOUND)
@@ -183,8 +198,14 @@ export class PvpHandler {
}, true); }, true);
await checkTask(roleId, sid, TASK_TYPE.PVP, 1, 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, { 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 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 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 // 更新battleRecord
await BattleRecordModel.updateBattleRecordByCode(battleCode, { await BattleRecordModel.updateBattleRecordByCode(battleCode, {
$set: { status: isSuccess ? 1 : 2 } $set: { status: isSuccess ? 1 : 2 }
}, true); }, true);
// 减少挑战次数
let refChallengeObj = refChallengeCnt(pvpDefense.challengeCnt, pvpDefense.challengeRefTime, seasonEndTime);
refChallengeObj.challengeCnt--;
update = {...update, ...refChallengeObj};
pvpDefense = await PvpDefenseModel.updateInfoAndInclude(roleId, update); pvpDefense = await PvpDefenseModel.updateInfoAndInclude(roleId, update);