pvp:挑战时间扣减时机修改
This commit is contained in:
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user