no message
This commit is contained in:
@@ -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);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user