Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

170 wiersze
4.8 KiB

  1. -- PdkdDismissView.lua
  2. -- 解散界面
  3. local PdkDismissView = class("PdkDismissView", cc.UIView)
  4. local function getUserNameById(userId)
  5. local userInfo = app.room:getPlayer(userId)
  6. if not userInfo then return end
  7. local userName = userInfo.nickname or tostring(userId)
  8. return userName
  9. end
  10. function PdkDismissView:ctor(initiateUserId)
  11. PdkDismissView.super.ctor(self);
  12. self.m_initiateUserId = initiateUserId
  13. self.itemList = {}
  14. end
  15. function PdkDismissView:onEnter()
  16. PdkDismissView.super.onEnter(self)
  17. local ui = loadUI("pk_luzhoupdk/res/ui/ui_room/ui_lzpdk_dismissview.ui");
  18. self.ui = ui;
  19. self:addChild(ui);
  20. --隐藏进度条
  21. self.ui.Items.LoadingBarBg:setVisible(false)
  22. --谁申请解散
  23. local initiateUserName = getUserNameById(self.m_initiateUserId)
  24. initiateUserName = getSubStringNickname(initiateUserName,self.ui.Items.Text)
  25. self.ui.Items.Text:setText("["..initiateUserName.."]")
  26. -- 同意
  27. self.ui.Items.Button_1:registerClick(handler(self , self.onClickAgree))
  28. -- 拒绝
  29. self.ui.Items.Button_2:registerClick(handler(self , self.onClickRefuse))
  30. local layout = self.ui.Items.Layout_3
  31. layout:removeAllChildren()
  32. --桌子有坐下的人
  33. local count = 1
  34. local PCOUNT = app.room:getPlayerNum()
  35. local dltWidth = 900/PCOUNT
  36. local shift = (dltWidth-90)/4
  37. for nUserId , info in pairs(app.room:getPlayers()) do
  38. local item = import("pk_hejiangpdk.luaScript.Views.Room.Sub.hejiangPdkDismissViewItem"):new(tonumber(nUserId), 0)
  39. if PCOUNT == 2 then
  40. if count == 1 then
  41. item:setPosition(cc.p((count-1)*dltWidth+dltWidth/2+shift, 110))
  42. else
  43. item:setPosition(cc.p((count-1)*dltWidth+dltWidth/2-shift, 110))
  44. end
  45. else
  46. if count==1 then
  47. item:setPosition(cc.p((count-1)*dltWidth+dltWidth/2+shift, 110))
  48. elseif count==3 then
  49. item:setPosition(cc.p((count-1)*dltWidth+dltWidth/2-shift, 110))
  50. else
  51. item:setPosition(cc.p((count-1)*dltWidth+dltWidth/2, 110))
  52. end
  53. end
  54. layout:addChild(item)
  55. self.itemList[tonumber(nUserId)] = item
  56. count = count + 1
  57. end
  58. self:bindEvent(app.room , "onDismissResponse" , handler(self , self.onDismissResponse))
  59. self:bindEvent(app.room , "onGameOverResponse" , handler(self , self.onGameOverResponse))
  60. self:bindEvent(app.room , "pdkNormalEvent_show_dissmiss_over" , handler(self , self.onGameOverResponse))
  61. self:updateButton()
  62. local timer = app.room:getRoomInfo().nDismissStateTime or 60
  63. local totalTime = app.room:getRoomInfo().nDismissToTalTime or 60
  64. if self.ui.Items.LoadingBar then
  65. self.ui.Items.LoadingBar:setPercent(timer/totalTime * 100)
  66. end
  67. self.ui.Items.Text_Time:setText(timer)
  68. self.loadingBarTimer = cc.Director:getInstance():getScheduler():scheduleScriptFunc(function()
  69. timer = timer - 1
  70. if self.ui.Items.LoadingBar then
  71. self.ui.Items.LoadingBar:setPercent(timer/totalTime * 100)
  72. end
  73. if timer <=0 then self:removeView() return end
  74. self.ui.Items.Text_Time:setText(timer)
  75. end,1.0,false)
  76. end
  77. function PdkDismissView:onExit()
  78. app.room:getRoomInfo().nShowDismiss = false
  79. if self.loadingBarTimer then
  80. cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.loadingBarTimer)
  81. self.loadingBarTimer = nil
  82. end
  83. end
  84. function PdkDismissView:updateButton()
  85. local myUserId = app.room:getMyself().userId
  86. if app.room.dismissInfo[myUserId] and app.room.dismissInfo[myUserId] ~= 0 or self.m_initiateUserId == myUserId then
  87. -- 我已经选择过了或者我是发起申请的那个
  88. self.ui.Items.Button_1:setVisible(false)
  89. self.ui.Items.Button_2:setVisible(false)
  90. else
  91. -- 我还没选择
  92. self.ui.Items.Button_1:setVisible(true)
  93. self.ui.Items.Button_2:setVisible(true)
  94. end
  95. if app.room.isOnLooker then
  96. self.ui.Items.Button_1:setVisible(false)
  97. self.ui.Items.Button_2:setVisible(false)
  98. self.ui.Items.Text_onLooker:setVisible(true)
  99. else
  100. self.ui.Items.Text_onLooker:setVisible(false)
  101. end
  102. end
  103. -- 同意
  104. function PdkDismissView:onClickAgree()
  105. app.room:requestDismissRoom(2)
  106. end
  107. -- 拒绝
  108. function PdkDismissView:onClickRefuse()
  109. app.room:requestDismissRoom(3)
  110. end
  111. function PdkDismissView:onDismissResponse(event)
  112. self:updateButton()
  113. for id,op in pairs(app.room.dismissInfo) do
  114. local item = self.itemList[id]
  115. if item then
  116. item:updateStatus();
  117. end
  118. end
  119. -- 房间内的人全都回复过了
  120. local isReplyNum = 0
  121. for _, operateType in pairs(app.room.dismissInfo) do
  122. if operateType == 1 or operateType == 2 or operateType == 3 then
  123. isReplyNum = isReplyNum + 1
  124. if operateType == 3 then
  125. self:runDelay(1, function()
  126. self:removeView()
  127. end )
  128. end
  129. end
  130. end
  131. if isReplyNum >= table.nums(app.room:getPlayers()) then
  132. self:runDelay(1, function()
  133. self:removeView()
  134. end )
  135. end
  136. end
  137. function PdkDismissView:onGameOverResponse(event)
  138. self:removeView()
  139. end
  140. function PdkDismissView:removeView()
  141. self:removeFromParent()
  142. end
  143. return PdkDismissView;