寻宝:移除队友之后不能再次加入
This commit is contained in:
@@ -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});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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: []
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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: '材料数量不足' },
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user