名将擂台:刷新机制
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user