pvp:挑战时间扣减时机修改

This commit is contained in:
luying
2022-02-25 20:26:23 +08:00
parent f5de3d5628
commit b067d8d114
2 changed files with 24 additions and 19 deletions
@@ -165,23 +165,7 @@ export class PvpHandler {
if (challengeCnt == 0) { if (challengeCnt == 0) {
return resResult(STATUS.PVP_CHALLENGE_TIMES_NOT_ENOUGH); return resResult(STATUS.PVP_CHALLENGE_TIMES_NOT_ENOUGH);
} }
let curOpp = pvpDefense.oppPlayers.find(cur => cur.roleId == oppRoleId);
// 对手记录更新
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) if (!curOpp) return resResult(STATUS.PVP_ROLE_NOT_FOUND)
const battleCode = genCode(8); // 关卡唯一值 const battleCode = genCode(8); // 关卡唯一值
@@ -198,6 +182,24 @@ export class PvpHandler {
}, true); }, true);
await checkTask(roleId, sid, TASK_TYPE.PVP, 1, true, {}); await checkTask(roleId, sid, TASK_TYPE.PVP, 1, true, {});
// 对手记录更新
await PvpHistoryOppModel.setStatus(roleId, oppRoleId, 1);
let update: pvpUpdateInter = {
oppBeforePlayers: pvpDefense.oppPlayers
};
// 刷新对手
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.updateInfoAndInclude(roleId, update);
let result = new PvpDataReturn(); // 返回对象 let result = new PvpDataReturn(); // 返回对象
result.setPvpDefense(pvpDefense); result.setPvpDefense(pvpDefense);
let oppPlayersReturn = await getEnemies(pvpDefense.oppPlayers, pvpDefense.winStreakNum); let oppPlayersReturn = await getEnemies(pvpDefense.oppPlayers, pvpDefense.winStreakNum);
@@ -246,7 +248,7 @@ export class PvpHandler {
let { attackInfo, showHeroScores, updateParam } = myRecInfo let { attackInfo, showHeroScores, updateParam } = myRecInfo
update = { ...update, ...updateParam }; update = { ...update, ...updateParam };
let curOpp = pvpDefense.oppPlayers.find(cur => cur.roleId == oppRoleId && cur.pos == pos); let curOpp = pvpDefense.oppBeforePlayers.find(cur => cur.roleId == oppRoleId && cur.pos == pos);
if (!curOpp) return resResult(STATUS.PVP_ROLE_NOT_FOUND); if (!curOpp) return resResult(STATUS.PVP_ROLE_NOT_FOUND);
const defenseInfo = await generPVPOppRecInfo(isSuccess, curOpp, oppHeroes, role.lv); const defenseInfo = await generPVPOppRecInfo(isSuccess, curOpp, oppHeroes, role.lv);
+4 -1
View File
@@ -22,6 +22,8 @@ export default class PvpDefense extends BaseModel {
lineupCe: LineupCe[]; lineupCe: LineupCe[];
@prop({ required: true, type: () => OppPlayer, default: [], _id: false }) @prop({ required: true, type: () => OppPlayer, default: [], _id: false })
oppPlayers: OppPlayer[]; oppPlayers: OppPlayer[];
@prop({ required: true, type: () => OppPlayer, default: [], _id: false })
oppBeforePlayers: OppPlayer[];
@prop({ required: true, type: () => HeroScore, default: [], _id: false }) @prop({ required: true, type: () => HeroScore, default: [], _id: false })
heroScores: HeroScore[]; heroScores: HeroScore[];
@@ -112,7 +114,8 @@ export default class PvpDefense extends BaseModel {
const result: PvpDefenseType = await PvpDefenseModel.findOne({ roleId }) const result: PvpDefenseType = await PvpDefenseModel.findOne({ roleId })
.populate('role', 'head frame spine topLineupCe roleId roleName lv globalCeAttr') .populate('role', 'head frame spine topLineupCe roleId roleName lv globalCeAttr')
.populate('heroes.hero') .populate('heroes.hero')
.populate('oppPlayers.oppDef', 'oppRoleId pos roleName head frame spine heads frames spines rankLv title lv pLv defCe heroes warId buff').lean({ getters: true, virtuals: true }); .populate('oppPlayers.oppDef', 'oppRoleId pos roleName head frame spine heads frames spines rankLv title lv pLv defCe heroes warId buff')
.populate('oppBeforePlayers.oppDef', 'oppRoleId pos roleName head frame spine heads frames spines rankLv title lv pLv defCe heroes warId buff').lean({ getters: true, virtuals: true });
return result; return result;
} }