public void Add(List <MatchEntity> teamA, List <MatchEntity> teamB) { roomID += 1; RoomInfo roomInfo = new RoomInfo(); roomInfo.ID = roomID; for (int i = 0; i < teamA.Count; i++) { MatchManager.Instance.Remove(teamA[i]); //teamA[i].player.rolesInfo. roomInfo.TeamA.Add(teamA[i].player.rolesInfo); } for (int i = 0; i < teamB.Count; i++) { MatchManager.Instance.Remove(teamB[i]); //teamA[i].player.rolesInfo. roomInfo.TeamB.Add(teamB[i].player.rolesInfo); } roomInfo.StartTime = TimeHelper.Now(); RoomEntity roomEntity = new RoomEntity(roomInfo); if (roomDIC.TryAdd(roomInfo.ID, roomEntity)) { //告诉每一个客户端 匹配成功了 然后进入到房间 选择英雄 LobbyUpdateMatchStateS2C s2cMSG = new LobbyUpdateMatchStateS2C(); s2cMSG.Result = 0; s2cMSG.RoomInfo = roomInfo; roomEntity.Broadcast(1301, s2cMSG); } //用户的队伍ID 房间实体 缓存 for (int i = 0; i < teamA.Count; i++) { teamA[i].player.matchEntity = null; teamA[i].player.roomEntity = roomEntity; teamA[i].player.TeamID = 0; } for (int i = 0; i < teamB.Count; i++) { teamB[i].player.matchEntity = null; teamB[i].player.roomEntity = roomEntity; teamB[i].player.TeamID = 1; } }
/// <summary> /// 更新匹配的状态 /// </summary> /// <param name="obj"></param> private void HandleLobbyUpdateMatchStateS2C(BufferEntity response) { LobbyUpdateMatchStateS2C s2cMSG = ProtobufHelper.FromBytes <LobbyUpdateMatchStateS2C>(response.proto); if (s2cMSG.Result == 0) { MatchModeBtn.gameObject.SetActive(true); QualifyingBtn.gameObject.SetActive(true); StopMatchBtn.gameObject.SetActive(false); MatchTips.gameObject.SetActive(false); //房间信息 RolesCtrl.Instance.SaveRoomInfo(s2cMSG.RoomInfo); Close(); WindowManager.Instance.OpenWindow(WindowType.RoomWindow); } }