寻宝:匹配多选
This commit is contained in:
@@ -101,10 +101,10 @@ export class ComBattleHandler {
|
||||
* @returns
|
||||
* @memberof ComBattleHandler
|
||||
*/
|
||||
async searchTeam(msg: { lv: number }, session: BackendSession) {
|
||||
async searchTeam(msg: { lv: number[] }, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let sid = session.get('sid');
|
||||
const { lv = 1 } = msg;
|
||||
const { lv: lvs = [] } = msg;
|
||||
const roleInfo = await RoleModel.findByRoleId(roleId, null, true);
|
||||
const { lv: playerLv } = roleInfo;
|
||||
let { topLineupCe = 1000 } = roleInfo;
|
||||
@@ -113,30 +113,26 @@ export class ComBattleHandler {
|
||||
return resResult(STATUS.COM_BATTLE_IS_RUNNING);
|
||||
}
|
||||
|
||||
if (comBtlLvInvalid(playerLv, lv)) {
|
||||
if (comBtlLvInvalid(playerLv, lvs)) {
|
||||
return resResult(STATUS.COM_BATTLE_ASSIST_LV_NOT_ENOUGH);
|
||||
}
|
||||
|
||||
if (!gameData.blueprtByLv.has(lv)) {
|
||||
return resResult(STATUS.COM_BLUEPRT_QUALITY_ERROR);
|
||||
}
|
||||
|
||||
const teams = await ComBattleTeamModel.getOtherTeamByLvAndSt(roleId, lv, COM_TEAM_STATUS.DEFAULT, topLineupCe);
|
||||
const teams = await ComBattleTeamModel.getOtherTeamByLvAndSt(roleId, lvs, COM_TEAM_STATUS.DEFAULT, topLineupCe);
|
||||
const team: ComBattleTeamType = await oneTeamNotInBlack(teams, roleId);
|
||||
if (team && team.roleIds.length < 3 && team.status === COM_TEAM_STATUS.DEFAULT && team.roleIds.indexOf(roleId) === -1 && team.blacklist && team.blacklist.indexOf(roleId) === -1) {
|
||||
return resResult(STATUS.SUCCESS, {teamCode: team.teamCode});
|
||||
}
|
||||
|
||||
let teamCode = session.get('teamCode');
|
||||
await setTeamSearchReq(roleId, sid, lv);
|
||||
await setTeamSearchReq(roleId, sid, lvs);
|
||||
let thiz = this;
|
||||
// 倒计时匹配两个机器人
|
||||
setTimeout(async () => {
|
||||
let inQueue = await checkRoleInQueue(roleId, sid, lv);
|
||||
let inQueue = await checkRoleInQueue(roleId, sid, lvs);
|
||||
if (!inQueue) return;
|
||||
await rmRoleFromQueue(roleId, sid, lv);
|
||||
await rmRoleFromQueue(roleId, sid, lvs);
|
||||
// 创建队伍
|
||||
let blueprtId = getRandBlueprtId(lv).pop();
|
||||
let blueprtId = getRandBlueprtId(lvs).pop();
|
||||
let comTeam = new MemComBtlTeam(teamCode, false, blueprtId, 'robot', 0)
|
||||
|
||||
let isFrd = await getFrd(roleId);
|
||||
@@ -147,7 +143,7 @@ export class ComBattleHandler {
|
||||
addUserToChannel(channel, new ChannelUser(roleId, sid));
|
||||
|
||||
// 创建并添加机器人
|
||||
await addRobotsToTeam(comTeam, roleId, topLineupCe, lv, thiz.teamMap, thiz.teamDisTimer, channel, 2);
|
||||
await addRobotsToTeam(comTeam, roleId, topLineupCe, playerLv, thiz.teamMap, thiz.teamDisTimer, channel, 2);
|
||||
|
||||
await ComBattleTeamModel.createTeam(comTeam);
|
||||
thiz.teamMap.set(teamCode, comTeam);
|
||||
@@ -196,7 +192,7 @@ export class ComBattleHandler {
|
||||
|
||||
if (lv < COM_BTL_CONST.ENABLE_LV) {
|
||||
return resResult(STATUS.COM_BATTLE_LV_NOT_ENOUGH);
|
||||
} else if (comBtlLvInvalid(lv, teamStatus.lv)) {
|
||||
} else if (comBtlLvInvalid(lv, [teamStatus.lv])) {
|
||||
return resResult(STATUS.COM_BATTLE_ASSIST_LV_NOT_ENOUGH);
|
||||
} else if (topLineupCe < teamStatus.ceLimit) {
|
||||
return resResult(STATUS.COM_BATTLE_CE_LIMIT);
|
||||
|
||||
Reference in New Issue
Block a user