寻宝:移除队友之后不能再次加入

This commit is contained in:
luying
2021-08-19 17:59:29 +08:00
parent 6adeda82dc
commit 69802f7af5
4 changed files with 19 additions and 3 deletions
@@ -114,7 +114,7 @@ export class ComBattleHandler {
const teams = await ComBattleTeamModel.getOtherTeamByQualityAndSt(roleId, qualityArr, COM_TEAM_STATUS.DEFAULT, lvRange, 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) {
if (team && team.roleIds.length < 3 && team.status === COM_TEAM_STATUS.DEFAULT && team.roleIds.indexOf(roleId) === -1 && team.blacklist.indexOf(roleId) === -1) {
return resResult(STATUS.SUCCESS, {teamCode: team.teamCode});
}
@@ -181,6 +181,8 @@ export class ComBattleHandler {
if (!teamStatus || teamStatus.status !== COM_TEAM_STATUS.DEFAULT) return resResult(STATUS.COM_BATTLE_TEAM_INVALID);
if (teamIsFullToStart(teamStatus)) return resResult(STATUS.COM_BATTLE_MEMBER_LIMIT);
if (teamStatus.roleIds.indexOf(roleId) !== -1) return resResult(STATUS.COM_BATTLE_DUP_ENTER);
if (teamStatus.blacklist.indexOf(roleId) != -1) return resResult(STATUS.COM_BATTLE_BE_KICKED);
let { lv = 1, head = EXTERIOR.EXTERIOR_FACE, topLineupCe = 0, frame = EXTERIOR.EXTERIOR_FACECASE, spine = EXTERIOR.EXTERIOR_APPEARANCE } = await Role.findByRoleId(roleId, null, true);
let { quality } = gameData.goods.get(teamStatus.blueprtId);
@@ -354,6 +356,9 @@ export class ComBattleHandler {
teamStatus.roleStatus.splice(idx, 1);
}
});
if(roleId === teamStatus.capId) { // 队长移除队友,并把他加入黑名单
teamStatus.blacklist.push(roleIdToRm);
}
// 推送移除消息
let channelService = this.app.get('channelService');
@@ -706,6 +711,14 @@ export class ComBattleHandler {
if (!msgData) return resResult(STATUS.WRONG_PARMS);
const roleInfo = await getSimpleRoleInfo(targetRoleId);
let teamStatus = this.teamMap.get(teamCode);
if(teamStatus) {
let index = teamStatus.blacklist.indexOf(targetRoleId);
if(index != -1) {
teamStatus.blacklist.splice(index, 1);
}
}
return resResult(STATUS.SUCCESS, {...msgData, roleInfo});
}
+1 -1
View File
@@ -563,7 +563,7 @@ export function createComTeamData(teamCode: string, pub: boolean, blueprtId: num
const bossHp = bossHpSum;
const status = COM_TEAM_STATUS.DEFAULT;
return {
teamCode, pub, blueprtId, status, capId, ceLimit, bossHp, bossCurHp, quality, bossHpArr: transBossHpArr(bossHpArr), curRnd, roleCnt, timeout, lvRange: equipLvl
teamCode, pub, blueprtId, status, capId, ceLimit, bossHp, bossCurHp, quality, bossHpArr: transBossHpArr(bossHpArr), curRnd, roleCnt, timeout, lvRange: equipLvl, blacklist: []
};
}