pvp:挑战时间扣减时机修改
This commit is contained in:
@@ -165,23 +165,7 @@ export class PvpHandler {
|
||||
if (challengeCnt == 0) {
|
||||
return resResult(STATUS.PVP_CHALLENGE_TIMES_NOT_ENOUGH);
|
||||
}
|
||||
|
||||
// 对手记录更新
|
||||
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 = pvpDefense.oppPlayers.find(cur => cur.roleId == oppRoleId);
|
||||
if (!curOpp) return resResult(STATUS.PVP_ROLE_NOT_FOUND)
|
||||
|
||||
const battleCode = genCode(8); // 关卡唯一值
|
||||
@@ -198,6 +182,24 @@ export class PvpHandler {
|
||||
}, 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(); // 返回对象
|
||||
result.setPvpDefense(pvpDefense);
|
||||
let oppPlayersReturn = await getEnemies(pvpDefense.oppPlayers, pvpDefense.winStreakNum);
|
||||
@@ -246,7 +248,7 @@ export class PvpHandler {
|
||||
let { attackInfo, showHeroScores, updateParam } = myRecInfo
|
||||
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);
|
||||
const defenseInfo = await generPVPOppRecInfo(isSuccess, curOpp, oppHeroes, role.lv);
|
||||
|
||||
|
||||
@@ -22,6 +22,8 @@ export default class PvpDefense extends BaseModel {
|
||||
lineupCe: LineupCe[];
|
||||
@prop({ required: true, type: () => OppPlayer, default: [], _id: false })
|
||||
oppPlayers: OppPlayer[];
|
||||
@prop({ required: true, type: () => OppPlayer, default: [], _id: false })
|
||||
oppBeforePlayers: OppPlayer[];
|
||||
@prop({ required: true, type: () => HeroScore, default: [], _id: false })
|
||||
heroScores: HeroScore[];
|
||||
|
||||
@@ -112,7 +114,8 @@ export default class PvpDefense extends BaseModel {
|
||||
const result: PvpDefenseType = await PvpDefenseModel.findOne({ roleId })
|
||||
.populate('role', 'head frame spine topLineupCe roleId roleName lv globalCeAttr')
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user