名将擂台:刷新机制

This commit is contained in:
luying
2022-08-17 14:00:53 +08:00
parent f1b1ac49e7
commit 87bde927d2
2 changed files with 19 additions and 19 deletions

View File

@@ -88,7 +88,7 @@ export async function getLadderEnemies(ladderData: LadderMatchType) {
async function getOppPlayerDetailByDb(serverId: number, oppPlayers: LadderOppPlayerInDB[]) {
let oppPlayersReturn: LadderOppPlayerReturn[] = [];
for(let oppPlayer of oppPlayers) {
let player = await generateOppPlayer(serverId, oppPlayer.rank, oppPlayers);
let player = await generateOppPlayer(serverId, oppPlayer.rank);
oppPlayersReturn.push(player);
}
return oppPlayersReturn;
@@ -112,23 +112,26 @@ export async function generateOppPlayers(rankNumbers: number[], serverId: number
let oppPlayers: LadderOppPlayerReturn[] = [], oppPlayersSave: LadderOppPlayerInDB[] = [];
for(let rank of rankNumbers) {
let player = await generateOppPlayer(serverId, rank, ranks);
oppPlayersSave.push({ rank, roleId: player.roleId, isRobot: player.isRobot });
let player = await generateOppPlayer(serverId, rank);
oppPlayersSave.push({ rank });
oppPlayers.push(player);
}
await LadderMatchModel.updateByRoleId(roleId, { ...update, oppPlayers: oppPlayersSave });
return oppPlayers
}
async function generateOppPlayer(serverId: number, rank: number, oppPlayers: { rank: number, roleId: string, isRobot?: boolean }[]) {
let player = oppPlayers.find(cur => cur.rank == rank && !cur.isRobot);
let result = new LadderOppPlayerReturn(rank, !player || rank == 3001);
if(player && rank != 3001) {
let r = new Rank(REDIS_KEY.LADDER, { serverId }, false);
let param = <RoleRankInfo>await r.getParam(player.rank, player.roleId, [player.rank]);
let defCe = await getLadderDefCe(player.roleId);
result.setByRedis(param, parseInt(`${defCe}`));
} else {
async function generateOppPlayer(serverId: number, rank: number) {
let r = new Rank(REDIS_KEY.LADDER, { serverId }, false);
let result = new LadderOppPlayerReturn(rank);
if(rank < 3001) {
let players = <RoleRankInfo[]>await r.getRankByRange(rank, rank);
if(players.length > 0) {
let player = players[0];
let defCe = await getLadderDefCe(player.roleId);
result.setByRedis(player, parseInt(`${defCe}`));
}
}
if(!result.roleId) {
let dicLadderDifficultRatio = gameData.ladderDifficultRatio.get(rank);
result.setByRobot(dicLadderDifficultRatio);
}