寻宝:添加撤退
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { ComBattleInvitation, MemComBtlTeam } from './../../../domain/battleField/ComBattleTeamField';
|
||||
import { difference } from 'underscore';
|
||||
import { difference, pick } from 'underscore';
|
||||
/*
|
||||
* @Author: 梁桐川
|
||||
* @Date: 2020-11-30 15:05:48
|
||||
@@ -560,6 +560,31 @@ export class ComBattleHandler {
|
||||
return resResult(STATUS.SUCCESS, { battleGoods: goods, teamInfo: {status, teamCode, roleStatus, bossHpArr} });
|
||||
}
|
||||
|
||||
async retreat(msg: {teamCode: string}, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let sid = session.get('sid');
|
||||
|
||||
let { teamCode } = msg;
|
||||
let teamStatus = this.teamMap.get(teamCode);
|
||||
if (!teamStatus || !teamStatus.roleIds || teamStatus.roleIds.indexOf(roleId) === -1) {
|
||||
checkTeamStatusAndSend(teamCode, roleId, sid);
|
||||
return resResult(STATUS.SUCCESS);
|
||||
}
|
||||
if(teamStatus.roleStatus.length > 1) {
|
||||
return resResult(STATUS.COM_BATTLE_RETREAT_ERR)
|
||||
}
|
||||
|
||||
clearRobotHurtTimer(teamStatus, this.robotHurtTimer);
|
||||
|
||||
let team = await ComBattleTeamModel.syncTeamData({ teamCode, status: COM_TEAM_STATUS.LOOSE, roleStatus: teamStatus.roleStatus, bossHpArr: teamStatus.bossHpArr, endTime: Date.now() }, false, true);
|
||||
if (!team) return resResult(STATUS.COM_BATTLE_RESULT_ERR);
|
||||
sendMessageToTeam(teamCode, PUSH_ROUTE.TEAM_COMPLETE, { teamCode, result: false });
|
||||
|
||||
this.teamMap.delete(teamCode);
|
||||
|
||||
return resResult(STATUS.SUCCESS, { teamInfo: pick(team, ['status', 'teamCode', 'roleStatus', 'bossHpArr']) });
|
||||
}
|
||||
|
||||
async getComBtlStatus(msg: {teamCode: string}, session: BackendSession) {
|
||||
let { teamCode } = msg;
|
||||
let roleStatus: RoleStatus[], status: number, bossHpArr: BossHp[], timeout: boolean, endTime = 0;
|
||||
|
||||
@@ -157,6 +157,7 @@ export const STATUS = {
|
||||
COM_BATTLE_IS_RUNNING: { code: 20637, simStr: '您有队伍正在进行中' },
|
||||
COM_BATTLE_INVITE_LV_NOT_ENOUGH: { code: 20638, simStr: '对方队伍等级不足,无法邀请' },
|
||||
COM_BATTLE_INVITE_CE_LIMIT: { code: 20639, simStr: '对方队伍战力不足,无法邀请' },
|
||||
COM_BATTLE_RETREAT_ERR: { code: 20640, simStr: '队伍不止单人,不允许撤退' },
|
||||
// 共斗藏宝图合成
|
||||
COM_BLUEPRT_QUALITY_CANNOT_COMPOSE: { code: 20650, simStr: '该品质藏宝图不可合成' },
|
||||
COM_BLUEPRT_COUNT_ERROR: { code: 20651, simStr: '材料数量不足' },
|
||||
|
||||
@@ -196,10 +196,14 @@ export default class ComBattleTeam extends BaseModel {
|
||||
@prop({ required: false, type: BossHp, default: [], _id: false })
|
||||
bossHpArr: BossHp[];
|
||||
|
||||
// 队伍是否开放加入
|
||||
// 是否超时
|
||||
@prop({ required: true, default: false })
|
||||
timeout: boolean;
|
||||
|
||||
// 是否撤退
|
||||
@prop({ required: true, default: false })
|
||||
retreat: boolean;
|
||||
|
||||
// 黑名单
|
||||
blacklist: string[] = [];
|
||||
|
||||
@@ -272,9 +276,9 @@ export default class ComBattleTeam extends BaseModel {
|
||||
return team;
|
||||
}
|
||||
|
||||
public static async syncTeamData(teamData: {teamCode: string, status: number, roleStatus: RoleStatus[], bossHpArr: BossHp[], endTime?: number}, timeout = false, lean = true) {
|
||||
public static async syncTeamData(teamData: {teamCode: string, status: number, roleStatus: RoleStatus[], bossHpArr: BossHp[], endTime?: number}, timeout = false, retreat = false) {
|
||||
// console.log('syncTeamData bossHpArr: ', teamData.bossHpArr);
|
||||
const team: ComBattleTeamType = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamData.teamCode }, {$set :{...teamData, roleCnt: teamData.roleStatus.length, timeout}}, {new: true}).lean(lean);
|
||||
const team: ComBattleTeamType = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamData.teamCode }, {$set :{...teamData, roleCnt: teamData.roleStatus.length, timeout, retreat}}, {new: true}).lean();
|
||||
return team;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user