|
- -- PdkdDismissView.lua
- -- 解散界面
- local PdkDismissView = class("PdkDismissView", cc.UIView)
-
- local function getUserNameById(userId)
- local userInfo = app.room:getPlayer(userId)
- if not userInfo then return end
- local userName = userInfo.nickname or tostring(userId)
-
- return userName
- end
-
- function PdkDismissView:ctor(initiateUserId)
- PdkDismissView.super.ctor(self);
- self.m_initiateUserId = initiateUserId
- self.itemList = {}
- end
-
- function PdkDismissView:onEnter()
- PdkDismissView.super.onEnter(self)
- local ui = loadUI("pk_luzhoupdk/res/ui/ui_room/ui_lzpdk_dismissview.ui");
- self.ui = ui;
- self:addChild(ui);
-
- --隐藏进度条
- self.ui.Items.LoadingBarBg:setVisible(false)
- --谁申请解散
- local initiateUserName = getUserNameById(self.m_initiateUserId)
- initiateUserName = getSubStringNickname(initiateUserName,self.ui.Items.Text)
- self.ui.Items.Text:setText("["..initiateUserName.."]")
-
- -- 同意
- self.ui.Items.Button_1:registerClick(handler(self , self.onClickAgree))
-
- -- 拒绝
- self.ui.Items.Button_2:registerClick(handler(self , self.onClickRefuse))
-
-
- local layout = self.ui.Items.Layout_3
- layout:removeAllChildren()
-
-
- --桌子有坐下的人
- local count = 1
- local PCOUNT = app.room:getPlayerNum()
- local dltWidth = 900/PCOUNT
- local shift = (dltWidth-90)/4
- for nUserId , info in pairs(app.room:getPlayers()) do
- local item = import("pk_hejiangpdk.luaScript.Views.Room.Sub.hejiangPdkDismissViewItem"):new(tonumber(nUserId), 0)
- if PCOUNT == 2 then
- if count == 1 then
- item:setPosition(cc.p((count-1)*dltWidth+dltWidth/2+shift, 110))
- else
- item:setPosition(cc.p((count-1)*dltWidth+dltWidth/2-shift, 110))
- end
- else
- if count==1 then
- item:setPosition(cc.p((count-1)*dltWidth+dltWidth/2+shift, 110))
- elseif count==3 then
- item:setPosition(cc.p((count-1)*dltWidth+dltWidth/2-shift, 110))
- else
- item:setPosition(cc.p((count-1)*dltWidth+dltWidth/2, 110))
- end
- end
- layout:addChild(item)
- self.itemList[tonumber(nUserId)] = item
- count = count + 1
- end
-
- self:bindEvent(app.room , "onDismissResponse" , handler(self , self.onDismissResponse))
- self:bindEvent(app.room , "onGameOverResponse" , handler(self , self.onGameOverResponse))
- self:bindEvent(app.room , "pdkNormalEvent_show_dissmiss_over" , handler(self , self.onGameOverResponse))
-
- self:updateButton()
-
- local timer = app.room:getRoomInfo().nDismissStateTime or 60
- local totalTime = app.room:getRoomInfo().nDismissToTalTime or 60
- if self.ui.Items.LoadingBar then
- self.ui.Items.LoadingBar:setPercent(timer/totalTime * 100)
- end
-
- self.ui.Items.Text_Time:setText(timer)
- self.loadingBarTimer = cc.Director:getInstance():getScheduler():scheduleScriptFunc(function()
- timer = timer - 1
- if self.ui.Items.LoadingBar then
- self.ui.Items.LoadingBar:setPercent(timer/totalTime * 100)
- end
- if timer <=0 then self:removeView() return end
- self.ui.Items.Text_Time:setText(timer)
- end,1.0,false)
- end
-
- function PdkDismissView:onExit()
- app.room:getRoomInfo().nShowDismiss = false
- if self.loadingBarTimer then
- cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.loadingBarTimer)
- self.loadingBarTimer = nil
- end
- end
-
- function PdkDismissView:updateButton()
- local myUserId = app.room:getMyself().userId
- if app.room.dismissInfo[myUserId] and app.room.dismissInfo[myUserId] ~= 0 or self.m_initiateUserId == myUserId then
- -- 我已经选择过了或者我是发起申请的那个
- self.ui.Items.Button_1:setVisible(false)
- self.ui.Items.Button_2:setVisible(false)
- else
- -- 我还没选择
- self.ui.Items.Button_1:setVisible(true)
- self.ui.Items.Button_2:setVisible(true)
- end
-
- if app.room.isOnLooker then
- self.ui.Items.Button_1:setVisible(false)
- self.ui.Items.Button_2:setVisible(false)
- self.ui.Items.Text_onLooker:setVisible(true)
- else
- self.ui.Items.Text_onLooker:setVisible(false)
- end
- end
-
- -- 同意
- function PdkDismissView:onClickAgree()
- app.room:requestDismissRoom(2)
- end
-
- -- 拒绝
- function PdkDismissView:onClickRefuse()
- app.room:requestDismissRoom(3)
- end
-
- function PdkDismissView:onDismissResponse(event)
- self:updateButton()
- for id,op in pairs(app.room.dismissInfo) do
- local item = self.itemList[id]
- if item then
- item:updateStatus();
- end
- end
-
- -- 房间内的人全都回复过了
- local isReplyNum = 0
- for _, operateType in pairs(app.room.dismissInfo) do
- if operateType == 1 or operateType == 2 or operateType == 3 then
- isReplyNum = isReplyNum + 1
- if operateType == 3 then
- self:runDelay(1, function()
- self:removeView()
- end )
- end
- end
- end
- if isReplyNum >= table.nums(app.room:getPlayers()) then
- self:runDelay(1, function()
- self:removeView()
- end )
- end
- end
-
- function PdkDismissView:onGameOverResponse(event)
- self:removeView()
- end
-
- function PdkDismissView:removeView()
- self:removeFromParent()
- end
-
-
-
- return PdkDismissView;
|