/** * 背包数据管理 */ let BattleMgr = { // # 房间玩家信息 // .DataRoomPlayer { // playerInfo 0: DataUserBaseInfo # 玩家信息 // seatId 1: integer # 位置ID // status 2: integer # 状态 0:进入 1:准备 // } // # 房间信息 // .DataRoom { // roomId 0: integer # 房间号 // playCount 1:integer # 战斗人数 - 历史战绩无此字段 // battleBoxList 2: *integer # 战斗箱子ID列表 // playerList 3: *DataRoomPlayer # 房间玩家列表 - 历史战绩仅保留战斗玩家 // status 4: integer # 房间状态 0:等待中 1:进行中 2:结束 // createTime 5: integer # 创建时间 // battleTime 6: integer # 战斗开始时间 // } // # 射击结果 // .DataBattleShot { // itemId 0: integer # 中奖饰品ID // price 1: integer # 射击价格 // } // # 战斗玩家 // .DataBattlePlayer { // uid 0: integer # 玩家ID // seatId 1: integer # 座位ID // shotList 2: *DataBattleShot # 射击结果列表 // } // # 战斗 - 玩家掉落 // .DataBattlePlayerShot { // uid 0: integer # 玩家ID // shot 1: DataBattleShot # 射击结果 // } // # 战斗 - 轮次信息 // .DataBattleRound { // round 0: integer # 轮次 // shotList 1: *DataBattlePlayerShot # 玩家射击列表 // } // # 战斗 - 结算 // .DataBattleSettle { // roomInfo 0: DataRoom # 房间信息 // battleId 1: string # 战斗编号 // winUid 2: integer # 胜利玩家ID // rounds 3: *DataBattleRound # 战斗轮次列表 - 历史战绩没有该字段 // battlePlayerList 4: *DataBattlePlayer # 战斗玩家列表 // } _rooms: {}, // 房间列表 _myRoom:null, init () { if (CC_EDITOR) { return; } // 推送消息 cc.game.on('on_room_new', this._onRoomNew, this); cc.game.on('on_room_destroy', this._onRoomDestroy, this); cc.game.on('on_room_player_change', this._onRoomPlayerChange, this); cc.game.on('on_room_seat_down', this._onRoomSeatDown, this); cc.game.on('on_room_battle_settle', this._onRoomBattleSettle, this); }, //* ************* 客户端请求/响应 ************* *// requestInfo () { G.NetworkMgr.sendSocketRequest('room_get_info', {}, this._responseRoomGetInfo.bind(this)); }, requestRoomCreate(playCount, battleBoxList) { let request = { playCount: playCount, battleBoxList: battleBoxList, }; G.NetworkMgr.sendSocketRequest('room_create_room', request, this._responseRoomCreate.bind(this)); }, requestRoomPlayerEnter(roomId) { let request = { roomId: roomId, }; G.NetworkMgr.sendSocketRequest('room_player_enter', request, this._responseRoomPlayerEnter.bind(this)); }, requestRoomPlayerSeat(roomId, seatId) { let request = { roomId: roomId, seatId: seatId, }; G.NetworkMgr.sendSocketRequest('room_player_seat', request, this._responseRoomPlayerSeat.bind(this)); }, requestRoomStandUp() { G.NetworkMgr.sendSocketRequest('room_stand_up', {}, this._responseRoomStandUp.bind(this)); }, requestRoomPlayerLeave() { G.NetworkMgr.sendSocketRequest('room_player_leave', {}, this._responseRoomPlayerLeave.bind(this)); }, requestRoomGetRecordList(lastTime) { let request = { lastTime: lastTime, }; G.NetworkMgr.sendSocketRequest('room_get_record_list', request, this._responseRoomGetRecordList.bind(this)); }, requestRoomGetPlayerRecordList(lastTime) { let request = { lastTime: lastTime, }; G.NetworkMgr.sendSocketRequest('room_get_player_record_list', request, this._responseRoomGetPlayerRecordList.bind(this)); }, requestRoomGetBrilliantRecordList() { G.NetworkMgr.sendSocketRequest('room_get_brilliant_record_list', {}, this._responseRoomGetBrilliantRecordList.bind(this)); }, _responseRoomGetInfo (data) { let responseInfo = data.responseInfo; if (responseInfo.code === 200) { // 房间列表 this._rooms = responseInfo.roomList; this._myRoom = responseInfo.myRoom; G.PublicMgr.emit(JMC.PUBLIC_MSG.BAG_INFO); } else { // 断开网络并且弹出重连窗口 G.NetworkMgr.closeSocket(); G.AppUtils.getSceneCtrl().showOfflineAlert(); } }, _responseRoomCreate (data){ let responseInfo = data.responseInfo; if (responseInfo.code === 200) { // 房间列表 this._myRoom = responseInfo.room; G.PublicMgr.emit(JMC.PUBLIC_MSG.ROOM_CREATE_ROOM); } else { // 断开网络并且弹出重连窗口 G.NetworkMgr.closeSocket(); G.AppUtils.getSceneCtrl().showOfflineAlert(); } }, _responseRoomPlayerEnter (data) { let responseInfo = data.responseInfo; if (responseInfo.code === 200) { // 房间列表 this._myRoom = responseInfo.room; G.PublicMgr.emit(JMC.PUBLIC_MSG.ROOM_CREATE_ROOM); } else { // 断开网络并且弹出重连窗口 G.NetworkMgr.closeSocket(); G.AppUtils.getSceneCtrl().showOfflineAlert(); } }, _responseRoomPlayerSeat (data) { }, _responseRoomStandUp (data) { }, _responseRoomPlayerLeave (data) { }, _responseRoomGetRecordList (data) { }, _responseRoomGetPlayerRecordList (data) { }, _responseRoomGetBrilliantRecordList (data) { }, } module.exports = BattleMgr;