BattleMgr.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. /**
  2. * 背包数据管理
  3. */
  4. let BattleMgr = {
  5. // # 房间玩家信息
  6. // .DataRoomPlayer {
  7. // playerInfo 0: DataUserBaseInfo # 玩家信息
  8. // seatId 1: integer # 位置ID
  9. // status 2: integer # 状态 0:进入 1:准备
  10. // }
  11. // # 房间信息
  12. // .DataRoom {
  13. // roomId 0: integer # 房间号
  14. // playCount 1:integer # 战斗人数 - 历史战绩无此字段
  15. // battleBoxList 2: *integer # 战斗箱子ID列表
  16. // playerList 3: *DataRoomPlayer # 房间玩家列表 - 历史战绩仅保留战斗玩家
  17. // status 4: integer # 房间状态 0:等待中 1:进行中 2:结束
  18. // createTime 5: integer # 创建时间
  19. // battleTime 6: integer # 战斗开始时间
  20. // }
  21. // # 射击结果
  22. // .DataBattleShot {
  23. // itemId 0: integer # 中奖饰品ID
  24. // price 1: integer # 射击价格
  25. // }
  26. // # 战斗玩家
  27. // .DataBattlePlayer {
  28. // uid 0: integer # 玩家ID
  29. // seatId 1: integer # 座位ID
  30. // shotList 2: *DataBattleShot # 射击结果列表
  31. // }
  32. // # 战斗 - 玩家掉落
  33. // .DataBattlePlayerShot {
  34. // uid 0: integer # 玩家ID
  35. // shot 1: DataBattleShot # 射击结果
  36. // }
  37. // # 战斗 - 轮次信息
  38. // .DataBattleRound {
  39. // round 0: integer # 轮次
  40. // shotList 1: *DataBattlePlayerShot # 玩家射击列表
  41. // }
  42. // # 战斗 - 结算
  43. // .DataBattleSettle {
  44. // roomInfo 0: DataRoom # 房间信息
  45. // battleId 1: string # 战斗编号
  46. // winUid 2: integer # 胜利玩家ID
  47. // rounds 3: *DataBattleRound # 战斗轮次列表 - 历史战绩没有该字段
  48. // battlePlayerList 4: *DataBattlePlayer # 战斗玩家列表
  49. // }
  50. _rooms: {}, // 房间列表
  51. _myRoom:null,
  52. init () {
  53. if (CC_EDITOR) {
  54. return;
  55. }
  56. // 推送消息
  57. cc.game.on('on_room_new', this._onRoomNew, this);
  58. cc.game.on('on_room_destroy', this._onRoomDestroy, this);
  59. cc.game.on('on_room_player_change', this._onRoomPlayerChange, this);
  60. cc.game.on('on_room_seat_down', this._onRoomSeatDown, this);
  61. cc.game.on('on_room_battle_settle', this._onRoomBattleSettle, this);
  62. },
  63. //* ************* 客户端请求/响应 ************* *//
  64. requestInfo () {
  65. G.NetworkMgr.sendSocketRequest('room_get_info', {}, this._responseRoomGetInfo.bind(this));
  66. },
  67. requestRoomCreate(playCount, battleBoxList) {
  68. let request = {
  69. playCount: playCount,
  70. battleBoxList: battleBoxList,
  71. };
  72. G.NetworkMgr.sendSocketRequest('room_create_room', request, this._responseRoomCreate.bind(this));
  73. },
  74. requestRoomPlayerEnter(roomId) {
  75. let request = {
  76. roomId: roomId,
  77. };
  78. G.NetworkMgr.sendSocketRequest('room_player_enter', request, this._responseRoomPlayerEnter.bind(this));
  79. },
  80. requestRoomPlayerSeat(roomId, seatId) {
  81. let request = {
  82. roomId: roomId,
  83. seatId: seatId,
  84. };
  85. G.NetworkMgr.sendSocketRequest('room_player_seat', request, this._responseRoomPlayerSeat.bind(this));
  86. },
  87. requestRoomStandUp() {
  88. G.NetworkMgr.sendSocketRequest('room_stand_up', {}, this._responseRoomStandUp.bind(this));
  89. },
  90. requestRoomPlayerLeave() {
  91. G.NetworkMgr.sendSocketRequest('room_player_leave', {}, this._responseRoomPlayerLeave.bind(this));
  92. },
  93. requestRoomGetRecordList(lastTime) {
  94. let request = {
  95. lastTime: lastTime,
  96. };
  97. G.NetworkMgr.sendSocketRequest('room_get_record_list', request, this._responseRoomGetRecordList.bind(this));
  98. },
  99. requestRoomGetPlayerRecordList(lastTime) {
  100. let request = {
  101. lastTime: lastTime,
  102. };
  103. G.NetworkMgr.sendSocketRequest('room_get_player_record_list', request, this._responseRoomGetPlayerRecordList.bind(this));
  104. },
  105. requestRoomGetBrilliantRecordList() {
  106. G.NetworkMgr.sendSocketRequest('room_get_brilliant_record_list', {}, this._responseRoomGetBrilliantRecordList.bind(this));
  107. },
  108. _responseRoomGetInfo (data) {
  109. let responseInfo = data.responseInfo;
  110. if (responseInfo.code === 200) {
  111. // 房间列表
  112. this._rooms = responseInfo.roomList;
  113. this._myRoom = responseInfo.myRoom;
  114. G.PublicMgr.emit(JMC.PUBLIC_MSG.BAG_INFO);
  115. } else {
  116. // 断开网络并且弹出重连窗口
  117. G.NetworkMgr.closeSocket();
  118. G.AppUtils.getSceneCtrl().showOfflineAlert();
  119. }
  120. },
  121. _responseRoomCreate (data){
  122. let responseInfo = data.responseInfo;
  123. if (responseInfo.code === 200) {
  124. // 房间列表
  125. this._myRoom = responseInfo.room;
  126. G.PublicMgr.emit(JMC.PUBLIC_MSG.ROOM_CREATE_ROOM);
  127. } else {
  128. // 断开网络并且弹出重连窗口
  129. G.NetworkMgr.closeSocket();
  130. G.AppUtils.getSceneCtrl().showOfflineAlert();
  131. }
  132. },
  133. _responseRoomPlayerEnter (data) {
  134. let responseInfo = data.responseInfo;
  135. if (responseInfo.code === 200) {
  136. // 房间列表
  137. this._myRoom = responseInfo.room;
  138. G.PublicMgr.emit(JMC.PUBLIC_MSG.ROOM_CREATE_ROOM);
  139. } else {
  140. // 断开网络并且弹出重连窗口
  141. G.NetworkMgr.closeSocket();
  142. G.AppUtils.getSceneCtrl().showOfflineAlert();
  143. }
  144. },
  145. _responseRoomPlayerSeat (data) {
  146. },
  147. _responseRoomStandUp (data) {
  148. },
  149. _responseRoomPlayerLeave (data) {
  150. },
  151. _responseRoomGetRecordList (data) {
  152. },
  153. _responseRoomGetPlayerRecordList (data) {
  154. },
  155. _responseRoomGetBrilliantRecordList (data) {
  156. },
  157. }
  158. module.exports = BattleMgr;