void showItems(List <RecommendRoom> rooms) { bool show = false; for (int i = 0; i < rooms.Count; i++) { Transform item = getItem(i); RecommendRoom room = rooms[i]; ClubRoomBaseInfo info = room.base_info; setText(item, "club", room.club_name + "俱乐部"); setText(item, "desc", info.huafen + "/" + info.huafen + (info.maima ? "带苍蝇" : "不带苍蝇") + info.maxGames + "局"); setText(item, "room", "房间号" + room.room_tag); setText(item, "hc", room.cnt + " / " + info.numOfSeats); setIcon(item, "bghead/icon", room.club_logo); setBtnEvent(item, null, () => { showDetail(room); }); if (mRoomID == room.id) { show = true; showDetail(room); } } if (!show) { mRoomID = 0; setActive(transform, "detail", false); } updateItems(rooms.Count); }
void showDetail(RecommendRoom room) { mRoomID = room.id; Transform detail = transform.Find("detail"); setActive(detail, null, true); Transform seats = detail.Find("seats"); UIGrid grid = seats.GetComponent <UIGrid>(); int nseats = room.players.Count; int empties = 0; for (int i = 0; i < seats.childCount && i < nseats; i++) { ClubRoomPlayer p = room.players [i]; Transform s = seats.GetChild(i); bool empty = p.id == 0; setActive(s, null, true); setActive(s, "name", !empty); setActive(s, "bghead/icon", !empty); setIcon(s, "bghead/icon", p.id); setText(s, "name", p.name); if (empty) { empties++; } } for (int i = nseats; i < seats.childCount; i++) { Transform s = seats.GetChild(i); setActive(s, null, false); } grid.Reposition(); ClubRoomBaseInfo info = room.base_info; Transform rules = detail.Find("rules"); setText(rules, "rule", "上海敲麻"); setText(rules, "huafen", "" + info.huafen); setText(rules, "playernum", "" + info.numOfSeats); setText(rules, "gamenum", "" + info.maxGames); setText(rules, "maxfan", "" + info.maxFan); setText(rules, "maima", info.maima ? "是" : "否"); setText(rules, "qidui", info.qidui ? "是" : "否"); setText(rules, "limit_ip", "否"); setText(rules, "limit_gps", "否"); setBtnEvent(detail, "btn_join", () => { if (empties == 0) { GameAlert.Show("房间已满,请重新选择"); return; } mShow = false; GameMgr.GetInstance().enterRoom(room.room_tag, code => { Debug.Log("club enterRoom code=" + code); if (0 != code) { mShow = true; string content = "房间不存在"; if (code == 2224) { content = "房间已满!"; } else if (code == 2222) { content = "钻石不足"; } else if (code == 2231) { content = "您的IP和其他玩家相同"; } else if (code == 2232) { content = "您的位置和其他玩家太近"; } else if (code == 2233) { content = "您的定位信息无效,请检查是否开启定位"; } else if (code == 2251) { content = "您不是俱乐部普通成员,无法加入俱乐部房间"; } GameAlert.Show(content); } }); }); setBtnEvent(detail, "btn_back", () => { mRoomID = 0; setActive(detail, null, false); }); }