ClubQuickJoin.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. cc.Class({
  2. extends: cc.BaseClass,
  3. properties: {
  4. m_TypeLayout:cc.Node,
  5. },
  6. ctor:function(){
  7. this.m_RoomKind = 0;
  8. this.m_TagArr = [];
  9. this.m_KindArr = [];
  10. this._update = false;
  11. },
  12. onSetRoomInfo:function(roomInfor){
  13. //界面初始化
  14. this._roomInfor = roomInfor;
  15. if (this.m_ListCtrl == null) this.m_ListCtrl = this.$('@CustomListCtrl');
  16. this.m_ListCtrl.InitList(0, 'ClubTagBtnPre', this);
  17. this.m_ListCtrl.InitList(1, 'ClubQuickJoinTypePre', this);
  18. this.m_KindArr = [];
  19. for (var i in roomInfor.RoomInfo) {
  20. var kindID = this._roomInfor.RoomInfo[i].wKindID;
  21. if(this.m_RoomKind == 0) this.m_RoomKind = kindID;
  22. if(this.CheckKind(kindID)){
  23. this.m_ListCtrl.InsertListInfo(1, [window.GameList[kindID],kindID,this.m_RoomKind,this]);
  24. this.m_KindArr.push(kindID);
  25. }
  26. }
  27. this.m_TagArr = [];
  28. for (var i in roomInfor.RoomInfo) {
  29. if(this._roomInfor.RoomInfo[i].wKindID!=this.m_RoomKind) continue;
  30. if(this.CheckTag(roomInfor.RoomInfo[i].szTag)){
  31. this.m_ListCtrl.InsertListInfo(0, [roomInfor.RoomInfo[i].szTag,this]);
  32. this.m_TagArr.push(roomInfor.RoomInfo[i].szTag);
  33. }
  34. }
  35. this.m_ListCtrl.InsertListInfo(0, ['全部',this]);
  36. },
  37. OnToggleTypeClick:function(type){
  38. this._update = true;
  39. this.m_RoomKind = type;
  40. },
  41. update:function(){
  42. if(!this._update) return;
  43. this._update = false;
  44. this.OnFilterTag();
  45. },
  46. OnTagClick:function(_,tag){
  47. this.m_RoomID = 0;
  48. if(tag == '全部')
  49. {
  50. if(this._roomInfor.RoomInfo.length>0)
  51. this.m_RoomID = this._roomInfor.RoomInfo[0].dwRoomID;
  52. return;
  53. }
  54. var temp = tag == '無標籤'?'':tag;
  55. for (var i in this._roomInfor.RoomInfo) {
  56. if(this._roomInfor.RoomInfo[i].szTag!=temp) continue;
  57. if (this._roomInfor.RoomInfo[i].wProgress > 0) continue;
  58. this.m_RoomID = this._roomInfor.RoomInfo[i].dwRoomID;
  59. break;
  60. }
  61. },
  62. OnFilterTag:function(){
  63. this.m_ListCtrl.InitList(0, 'ClubTagBtnPre', this);
  64. var ShowIndex = 0;
  65. this.m_TagArr = [];
  66. for (var i in this._roomInfor.RoomInfo) {
  67. if(this._roomInfor.RoomInfo[i].wKindID!=this.m_RoomKind) continue;
  68. if(this.CheckTag(this._roomInfor.RoomInfo[i].szTag)){
  69. this.m_ListCtrl.InsertListInfo(0, [this._roomInfor.RoomInfo[i].szTag,this]);
  70. this.m_TagArr.push(this._roomInfor.RoomInfo[i].szTag);
  71. }
  72. }
  73. this.m_ListCtrl.InsertListInfo(0, ['全部',this]);
  74. },
  75. CheckTag:function(Tag){
  76. for(var i =0;i<this.m_TagArr.length;i++){
  77. if(this.m_TagArr[i] == Tag) return false;
  78. }
  79. return true;
  80. },
  81. CheckKind:function(kind){
  82. for(var i =0;i<this.m_KindArr.length;i++){
  83. if(this.m_KindArr[i] == kind) return false;
  84. }
  85. return true;
  86. },
  87. OnJoin:function(){
  88. if(this.m_RoomID == 0){
  89. this.ShowTips('請選擇要進入的房間!');
  90. return;
  91. }
  92. this.m_Hook.OnEnterRoom(this.m_RoomID);
  93. },
  94. });