名将擂台:刷新对手顺序
This commit is contained in:
@@ -198,8 +198,7 @@ export class LadderHandler {
|
||||
let { isChange, atkLadderMatch, defLadderMatch, endTime } = await LadderMatchModel.changeRank(isSuccess, rec.attackInfo, rec.defenseInfo);
|
||||
|
||||
if(isChange) {
|
||||
let oppPlayers = await battleEndWhenChange(atkLadderMatch, true);
|
||||
await battleEndWhenChange(defLadderMatch, true);
|
||||
let oppPlayers = await battleEndWhenChange(atkLadderMatch, defLadderMatch, true);
|
||||
result.setOppPlayers(oppPlayers);
|
||||
rec = await LadderMatchRecModel.battleEnd(battleCode, isSuccess, endTime, atkLadderMatch.rank, defLadderMatch? defLadderMatch.rank: rec.attackInfo.oldRank);
|
||||
if(atkLadderMatch.rank == 1) {
|
||||
@@ -386,8 +385,7 @@ export class LadderHandler {
|
||||
atkLadderMatch = await LadderMatchModel.findOneAndUpdate({ roleId }, { $set: { rank, oldRank: atkLadderMatch.rank, historyRank: rank } }, { new: true }).lean();
|
||||
}
|
||||
|
||||
await battleEndWhenChange(atkLadderMatch, true);
|
||||
await battleEndWhenChange(defLadderMatch, true);
|
||||
await battleEndWhenChange(atkLadderMatch, defLadderMatch, true);
|
||||
return resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
|
||||
@@ -299,16 +299,25 @@ export async function ladderTimeout(battleCode: string, status: LADDER_STATUS) {
|
||||
* @param isAtk
|
||||
* @returns
|
||||
*/
|
||||
export async function battleEndWhenChange(ladderMatch: LadderMatchType, needRefresh: boolean) {
|
||||
if(!ladderMatch) return;
|
||||
export async function battleEndWhenChange(atkLadderMatch: LadderMatchType, defLadderMatch: LadderMatchType, needRefresh: boolean) {
|
||||
await updateLadderRedis(atkLadderMatch);
|
||||
await updateLadderRedis(defLadderMatch);
|
||||
await refreshOpp(defLadderMatch, needRefresh);
|
||||
return await refreshOpp(atkLadderMatch, needRefresh);
|
||||
}
|
||||
|
||||
async function updateLadderRedis(ladderMatch: LadderMatchType) {
|
||||
if(!ladderMatch) return;
|
||||
// 更新redis
|
||||
if(ladderMatch.rank > 0 && ladderMatch.rank < 3001) {
|
||||
let r = new Rank(REDIS_KEY.LADDER, { serverId: ladderMatch.serverId });
|
||||
await r.setRankWithRoleInfo(ladderMatch.roleId, ladderMatch.rank, 0);
|
||||
await saveLadderDefCeByData(ladderMatch.roleId, ladderMatch);
|
||||
}
|
||||
}
|
||||
|
||||
async function refreshOpp(ladderMatch: LadderMatchType, needRefresh: boolean) {
|
||||
if(!ladderMatch) return []
|
||||
// 刷新对手
|
||||
if(needRefresh) {
|
||||
let oppPlayers = await refreshLadderEnemies(ladderMatch);
|
||||
|
||||
Reference in New Issue
Block a user