BattleMgr.js 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  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. _records:[],
  53. _brilliantRecords:[],
  54. init () {
  55. if (CC_EDITOR) {
  56. return;
  57. }
  58. // 推送消息
  59. cc.game.on('on_room_new', this._onRoomNew, this);
  60. cc.game.on('on_room_destroy', this._onRoomDestroy, this);
  61. cc.game.on('on_room_player_change', this._onRoomPlayerChange, this);
  62. cc.game.on('on_room_seat_down', this._onRoomSeatDown, this);
  63. cc.game.on('on_room_battle_settle', this._onRoomBattleSettle, this);
  64. },
  65. getMyRoom() {
  66. return this._myRoom;
  67. },
  68. getRoomList(){
  69. return this._rooms;
  70. },
  71. //* ************* 客户端请求/响应 ************* *//
  72. requestInfo () {
  73. G.NetworkMgr.sendSocketRequest('room_get_info', {}, this._responseRoomGetInfo.bind(this));
  74. },
  75. requestRoomCreate(playCount, battleBoxList) {
  76. let request = {
  77. playCount: playCount,
  78. battleBoxList: battleBoxList,
  79. };
  80. G.NetworkMgr.sendSocketRequest('room_create_room', request, this._responseRoomCreate.bind(this));
  81. },
  82. requestRoomPlayerEnter(roomId) {
  83. let request = {
  84. roomId: roomId,
  85. };
  86. G.NetworkMgr.sendSocketRequest('room_player_enter', request, this._responseRoomPlayerEnter.bind(this));
  87. },
  88. requestRoomPlayerSeat(roomId, seatId) {
  89. let request = {
  90. roomId: roomId,
  91. seatId: seatId,
  92. };
  93. G.NetworkMgr.sendSocketRequest('room_player_seat', request, this._responseRoomPlayerSeat.bind(this));
  94. },
  95. requestRoomStandUp() {
  96. G.NetworkMgr.sendSocketRequest('room_stand_up', {}, this._responseRoomStandUp.bind(this));
  97. },
  98. requestRoomPlayerLeave() {
  99. G.NetworkMgr.sendSocketRequest('room_player_leave', {}, this._responseRoomPlayerLeave.bind(this));
  100. },
  101. requestRoomGetRecordList(lastTime) {
  102. let request = {
  103. lastTime: lastTime,
  104. };
  105. G.NetworkMgr.sendSocketRequest('room_get_record_list', request, this._responseRoomGetRecordList.bind(this));
  106. },
  107. requestRoomGetPlayerRecordList(lastTime) {
  108. let request = {
  109. lastTime: lastTime,
  110. };
  111. G.NetworkMgr.sendSocketRequest('room_get_player_record_list', request, this._responseRoomGetPlayerRecordList.bind(this));
  112. },
  113. requestRoomGetBrilliantRecordList() {
  114. G.NetworkMgr.sendSocketRequest('room_get_brilliant_record_list', {}, this._responseRoomGetBrilliantRecordList.bind(this));
  115. },
  116. _responseRoomGetInfo (data) {
  117. let responseInfo = data.responseInfo;
  118. if (responseInfo.code === 200) {
  119. // 房间列表
  120. this._rooms = responseInfo.roomList;
  121. this._myRoom = responseInfo.myRoom;
  122. G.PublicMgr.emit(JMC.PUBLIC_MSG.ROOM_GET_INFO);
  123. }
  124. },
  125. _responseRoomCreate (data){
  126. let responseInfo = data.responseInfo;
  127. if (responseInfo.code === 200) {
  128. // 房间列表
  129. this._myRoom = responseInfo.room;
  130. G.UIMgr.open(JMC.UIEnum.BattleRoom);
  131. G.PublicMgr.emit(JMC.PUBLIC_MSG.ROOM_CREATE_ROOM);
  132. }
  133. },
  134. _responseRoomPlayerEnter (data) {
  135. let responseInfo = data.responseInfo;
  136. if (responseInfo.code === 200) {
  137. // 房间列表
  138. this._myRoom = responseInfo.room;
  139. G.PublicMgr.emit(JMC.PUBLIC_MSG.ROOM_CREATE_ROOM);
  140. }
  141. },
  142. _responseRoomPlayerSeat (data) {
  143. let responseInfo = data.responseInfo;
  144. if (responseInfo.code === 200) {
  145. // 房间列表
  146. G.PublicMgr.emit(JMC.PUBLIC_MSG.ROOM_PLAYER_SEAT);
  147. }
  148. },
  149. _responseRoomStandUp (data) {
  150. let responseInfo = data.responseInfo;
  151. if (responseInfo.code === 200) {
  152. // 房间列表
  153. G.PublicMgr.emit(JMC.PUBLIC_MSG.ROOM_STAND_UP);
  154. }
  155. },
  156. _responseRoomPlayerLeave (data) {
  157. let responseInfo = data.responseInfo;
  158. if (responseInfo.code === 200) {
  159. // 房间列表
  160. G.PublicMgr.emit(JMC.PUBLIC_MSG.ROOM_PLAYER_LEAVE);
  161. }
  162. },
  163. _responseRoomGetRecordList (data) {
  164. let responseInfo = data.responseInfo;
  165. if (responseInfo.code === 200) {
  166. // 房间列表
  167. G.PublicMgr.emit(JMC.PUBLIC_MSG.ROOM_GET_RECORD_LIST);
  168. }
  169. },
  170. _responseRoomGetPlayerRecordList (data) {
  171. let responseInfo = data.responseInfo;
  172. if (responseInfo.code === 200) {
  173. this._records = responseInfo.list;
  174. G.PublicMgr.emit(JMC.PUBLIC_MSG.ROOM_GET_PLAYER_RECORD_LIST);
  175. }
  176. },
  177. _responseRoomGetBrilliantRecordList (data) {
  178. let responseInfo = data.responseInfo;
  179. if (responseInfo.code === 200) {
  180. this._brilliantRecords = responseInfo.list;
  181. G.PublicMgr.emit(JMC.PUBLIC_MSG.ROOM_GET_BRILLIANT_RECORD_LIST);
  182. }
  183. },
  184. }
  185. module.exports = BattleMgr;