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

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

View File

@@ -114,7 +114,7 @@ export class ComBattleHandler {
const teams = await ComBattleTeamModel.getOtherTeamByQualityAndSt(roleId, qualityArr, COM_TEAM_STATUS.DEFAULT, lvRange, topLineupCe); const teams = await ComBattleTeamModel.getOtherTeamByQualityAndSt(roleId, qualityArr, COM_TEAM_STATUS.DEFAULT, lvRange, topLineupCe);
const team: ComBattleTeamType = await oneTeamNotInBlack(teams, roleId); 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}); 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 (!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 (teamIsFullToStart(teamStatus)) return resResult(STATUS.COM_BATTLE_MEMBER_LIMIT);
if (teamStatus.roleIds.indexOf(roleId) !== -1) return resResult(STATUS.COM_BATTLE_DUP_ENTER); 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 { 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); let { quality } = gameData.goods.get(teamStatus.blueprtId);
@@ -354,6 +356,9 @@ export class ComBattleHandler {
teamStatus.roleStatus.splice(idx, 1); teamStatus.roleStatus.splice(idx, 1);
} }
}); });
if(roleId === teamStatus.capId) { // 队长移除队友,并把他加入黑名单
teamStatus.blacklist.push(roleIdToRm);
}
// 推送移除消息 // 推送移除消息
let channelService = this.app.get('channelService'); let channelService = this.app.get('channelService');
@@ -706,6 +711,14 @@ export class ComBattleHandler {
if (!msgData) return resResult(STATUS.WRONG_PARMS); if (!msgData) return resResult(STATUS.WRONG_PARMS);
const roleInfo = await getSimpleRoleInfo(targetRoleId); 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}); return resResult(STATUS.SUCCESS, {...msgData, roleInfo});
} }

View File

@@ -563,7 +563,7 @@ export function createComTeamData(teamCode: string, pub: boolean, blueprtId: num
const bossHp = bossHpSum; const bossHp = bossHpSum;
const status = COM_TEAM_STATUS.DEFAULT; const status = COM_TEAM_STATUS.DEFAULT;
return { 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: []
}; };
} }

View File

@@ -122,7 +122,7 @@ export const STATUS = {
COM_BATTLE_HEROES_ERR: { code: 20629, simStr: '阵容异常' }, COM_BATTLE_HEROES_ERR: { code: 20629, simStr: '阵容异常' },
COM_BATTLE_SET_FRD_ERR: { code: 20630, simStr: '设置情谊助战异常' }, COM_BATTLE_SET_FRD_ERR: { code: 20630, simStr: '设置情谊助战异常' },
COM_BATTLE_BLACKLIST: { code: 20633, simStr: '队伍中存在黑名单玩家' }, COM_BATTLE_BLACKLIST: { code: 20633, simStr: '队伍中存在黑名单玩家' },
COM_BATTLE_BE_KICKED: { code: 20634, simStr: '您已被队伍踢出,无法加入'},
// 共斗藏宝图合成 // 共斗藏宝图合成
COM_BLUEPRT_QUALITY_CANNOT_COMPOSE: { code: 20630, simStr: '该品质藏宝图不可合成' }, COM_BLUEPRT_QUALITY_CANNOT_COMPOSE: { code: 20630, simStr: '该品质藏宝图不可合成' },
COM_BLUEPRT_COUNT_ERROR: { code: 20631, simStr: '材料数量不足' }, COM_BLUEPRT_COUNT_ERROR: { code: 20631, simStr: '材料数量不足' },

View File

@@ -175,6 +175,9 @@ export default class ComBattleTeam extends BaseModel {
@prop({ required: true, default: false }) @prop({ required: true, default: false })
timeout: boolean; timeout: boolean;
// 黑名单
blacklist: string[] = [];
public static async createTeam(teamData: ComBattleTeamParam, lean = true) { public static async createTeam(teamData: ComBattleTeamParam, lean = true) {
const team: ComBattleTeamType = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamData.teamCode }, {$set :{...teamData, roleCnt: teamData.roleIds.length}}, {upsert: true, new: true}).lean(lean); const team: ComBattleTeamType = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamData.teamCode }, {$set :{...teamData, roleCnt: teamData.roleIds.length}}, {upsert: true, new: true}).lean(lean);
return team; return team;