local PKDef = PKFramework.PKImport("pk_base.luaScript.PKDef") local PKFuc = PKFramework.PKImport("pk_base.luaScript.PKFunctions") local PKSound = PKFramework.PKImport("pk_base.luaScript.PKSound") local PKMessage = PKFramework.PKImport("pk_base.luaScript.Protocol.PKMessage") local PKRoomOperationView = class("PKRoomOperationView", cc.UIView) function PKRoomOperationView:ctor(parent) PKRoomOperationView.super.ctor(self); self.parent = parent end function PKRoomOperationView:onEnter() PKRoomOperationView.super.onEnter(self) local ui = loadUI("pk_base/res/ui/ui_fangjian/pk_ui_operation.ui"); self.ui = ui; self:addChild(ui); self.ui.Items.Button_Choice:registerClick(nil,function () playBtnEffect() if self.selectCard == 0 then showTooltip("请选择一张牌") else app.room:requestCallCard(self.selectCard) end end) self.ui.Items.Button_Choice_Sure:registerClick(nil,function () playBtnEffect() if table.nums(self.cardList) <= 0 then showTooltip("请选择一组牌") else logD("list:",table.tostring(self.cardList)) logD("srcList:",table.tostring(self.srcCardList)) self:setChoiceCardView(false) app.room:requestSendOutCard(1,self.srcCardList,self.cardList) local tpCardInfo = PKFuc.getCardType(self.cardList) self.parent:createOutCard(PKDef.MyViewID, self.cardList, tpCardInfo[1].cardType, false, self.srcCardList); end end) --包牌 self.ui.Items.Button_BaoPai:registerClick(nil,function () playBtnEffect() local content = string.format("是否确认包牌吗?") local okCallBack = function () if self.parent:getTuoGuanState() == true then self:hideSelf() return end app.room:requestBaoPai(PKDef.BaoPai.BAOPAI) self:hideSelf() end local cancelCallBack = function () end showConfirmDialog(content,okCallBack,cancelCallBack) end) --不包 self.ui.Items.Button_BuBao:registerClick(function () playBtnEffect() self:hideSelf() app.room:requestBaoPai(PKDef.BaoPai.BUBAO) end) --反包 self.ui.Items.Button_FanBao:registerClick(nil,function () playBtnEffect() local content = string.format("是否确认反包?") local okCallBack = function () app.room:requestBaoPai(PKDef.BaoPai.FANBAO) self:hideSelf() end local cancelCallBack = function () end showConfirmDialog(content,okCallBack,cancelCallBack) end) --不反 self.ui.Items.Button_BuFan:registerClick(function () playBtnEffect() self:hideSelf() app.room:requestBaoPai(PKDef.BaoPai.BUFAN) end) --出牌 self.ui.Items.Button_OutCard:registerClick(function () playBtnEffect() self.parent:sendOutCard() end) --提示 self.ui.Items.Button_Tip:registerClick(function () playBtnEffect() self.parent:onTiShiClick() end) --不出 self.ui.Items.Button_NoOut:registerClick(function () playBtnEffect() self.parent:sendNoOutCard() end) self.srcWidth = self.ui.Items.Layout_ChoiceCardType:getContentSize().width self.srcHeight = self.ui.Items.Layout_ChoiceCardType:getContentSize().height self:hideSelf(true) end function PKRoomOperationView:setLayoutBaoPaiView(bVisible) self:hideSelf() self.ui.Items.Layout_BaoPai:setVisible(bVisible) end function PKRoomOperationView:setLayoutFanPaoView(bVisible) self:hideSelf() self.ui.Items.Layout_FanBao:setVisible(bVisible) end function PKRoomOperationView:setOperatorPanelView(bVisible,opType) self:hideSelf() self.ui.Items.Layout_operatorPanel:setVisible(bVisible) --0-只能pass 1-可以选择出也可以不出 2-必须出牌 if opType == 0 then self.ui.Items.Layout_NoOut:setVisible(true) self.ui.Items.Layout_Tip:setVisible(false) self.ui.Items.Layout_OutCard:setVisible(false) elseif opType == 1 then self.ui.Items.Layout_NoOut:setVisible(true) self.ui.Items.Layout_Tip:setVisible(true) self.ui.Items.Layout_OutCard:setVisible(true) elseif opType == 2 then self.ui.Items.Layout_NoOut:setVisible(false) self.ui.Items.Layout_Tip:setVisible(true) self.ui.Items.Layout_OutCard:setVisible(true) end self.ui.Items.Layout_operatorPanel:requestDoLayout() self.ui.Items.Layout_operatorPanel:doLayout() end function PKRoomOperationView:setPlayerView(view) self.playerView = view end function PKRoomOperationView:setCallCardView(bVisible,cardList,callCard,isNotShowAni) self.ui.Items.Layout_CallCard:setVisible(bVisible) self.ui.Items.Layout_Card:setVisible(false) self.ui.Items.Layout_Banker:setVisible(false) self.ui.Items.ImageView_CallCardBg:setVisible(false) self.ui.Items.ImageView_WaitBanker:setVisible(false) self.ui.Items.Layout_JiaoPai:removeAllChildren() self.selectCard = 0 if not bVisible then return end if callCard then self.ui.Items.ImageView_CallCardBg:setVisible(true) local file = PKFuc.getPKCardImgByValue(callCard) self.ui.Items.ImageView_ChoiceCard:loadTextureFromPlist(file) if not isNotShowAni then self.ui.Items.ImageView_ChoiceCard:setScale(0) local viewId = app.room:getViewIdByUserId(app.room.roomInfo.nBankerUserId) local srcPos = self.ui.Items.ImageView_ChoiceCard:getPosition() local pos = cc.p(self.playerView.allNodes[viewId].head:getContentSize().width/2 , self.playerView.allNodes[viewId].head:getContentSize().height/2) local worldPos = self.playerView.allNodes[viewId].head:convertToWorldSpace(pos) local posInPlayer = self.ui.Items.ImageView_ChoiceCard:getParent():convertToNodeSpace(worldPos) local cententPos = self.ui.Items.ImageView_ChoiceCard:getParent():convertToNodeSpace(cc.p(getWinSize().width/2,getWinSize().height/2)) self.ui.Items.ImageView_ChoiceCard:setPosition(posInPlayer) local spawn = cc.Spawn:create(cc.MoveTo:create(0.3,cententPos),cc.ScaleTo:create(0.3,3)) local spawn2 = cc.Spawn:create(cc.MoveTo:create(0.5,srcPos),cc.ScaleTo:create(0.5,1)) local seq = cc.Sequence:create(spawn,cc.DelayTime:create(1.0),spawn2) self.ui.Items.ImageView_ChoiceCard:runAction(seq) end return end if app.room.roomInfo.nBankerUserId == app.room:getMyRecordUserId() then self.ui.Items.Layout_Banker:setVisible(true) self.callCallList = {} for k,v in ipairs(cardList) do local card = self.ui.Items.Layout_Card:getCopied() card.Items = getUIItems(card) card:setVisible(true) local cardValue = 0xff if PKFuc.getIsMingJiao() then cardValue = v.card end local file = PKFuc.getPKCardImgByValue(cardValue) card.Items.ImageView_Card:loadTextureFromPlist(file) self.ui.Items.Layout_JiaoPai:addChild(card) self.ui.Items.Layout_JiaoPai:requestDoLayout() self.ui.Items.Layout_JiaoPai:doLayout() table.insert(self.callCallList,card) local srcPosY = card.Items.ImageView_Card:getPositionY() card:registerClick(function () for _,ui in ipairs(self.callCallList) do ui.Items.ImageView_Card:setPositionY(srcPosY) end card.Items.ImageView_Card:setPositionY(srcPosY + 20) self.selectCard = v.card log("选择的牌:") PKFuc.logCard(v.card) end) end else self.ui.Items.ImageView_WaitBanker:setVisible(true) end end function PKRoomOperationView:setChoiceCardView(bVisible,srcList,weaveCardList) self.ui.Items.Layout_ChoiceCard:setVisible(bVisible) if bVisible then self.ui.Items.Layout_ChoiceCardType:removeAllChildren() self.ui.Items.Layout_CardItem:setVisible(false) self.ui.Items.Layout_CardItemParent:setVisible(false) self.ui.Items.Layout_Item:setVisible(false) logD("weaveCardList:",table.tostring(weaveCardList)) self.selectCallList = {} --最大组合数 local maxWeaveNum = table.nums(weaveCardList) local tpLineCount = math.ceil(maxWeaveNum / 2) local tpHeightCount = 2 self.ui.Items.Layout_ChoiceCardType:setSize(cc.size(self.srcWidth,self.srcHeight)) local width = tpLineCount * self.srcWidth local height = tpHeightCount * self.srcHeight --根据组合设置我变化后的宽高 self.ui.Items.Layout_ChoiceCardType:setSize(cc.size(width,height)) --title self.ui.Items.ImageView_Title_CardType:setPositionY(self.ui.Items.Layout_ChoiceCardType:getPositionY() + height / 2 + 15) local newWidth = self.ui.Items.Layout_ChoiceCardType:getContentSize().width local newHeight = self.ui.Items.Layout_ChoiceCardType:getContentSize().height local isdefault = false local topLayout = self.ui.Items.Layout_Item:getCopied() self.ui.Items.Layout_ChoiceCardType:addChild(topLayout) topLayout:setPosition(cc.p(newWidth/2,newHeight * 0.75)) local bottomLayout = self.ui.Items.Layout_Item:getCopied() self.ui.Items.Layout_ChoiceCardType:addChild(bottomLayout) bottomLayout:setPosition(cc.p(newWidth/2,newHeight * 0.25)) local cardWidth = 0 for k1,list in ipairs(weaveCardList) do local nodeLayout = self.ui.Items.Layout_CardItemParent:getCopied() for _k,cardvalue in ipairs(list) do local card = self.ui.Items.Layout_CardItem:getCopied() card.Items = getUIItems(card) local file = PKFuc.getPKCardImgByValue(cardvalue) card.Items.ImageView_CardItem:loadTextureFromPlist(file) cardWidth = card.Items.ImageView_CardItem:getContentSize().width nodeLayout:addChild(card) end nodeLayout:setColor(cc.c3b(125,125,125)) if not isdefault then isdefault = true nodeLayout:setColor(cc.c3b(255,255,255)) self.cardList = app.room:getTableList(list) self.srcCardList = app.room:getTableList(srcList) end table.insert(self.selectCallList,nodeLayout) nodeLayout:requestDoLayout() nodeLayout:doLayout() local mid = math.floor(maxWeaveNum/2) local leftBlock = maxWeaveNum - mid if k1 <= mid then topLayout:addChild(nodeLayout) else local nWidth = nodeLayout:getChildrenCount() * self.ui.Items.Layout_CardItem:getContentSize().width + cardWidth * 0.5 --nodeLayout:setContentSize(cc.size(nWidth,nodeLayout:getContentSize().height)) local sss = nodeLayout:getContentSize() bottomLayout:addChild(nodeLayout) end nodeLayout:registerClick(function () for _,ui in ipairs(self.selectCallList) do ui:setColor(cc.c3b(125,125,125)) end nodeLayout:setColor(cc.c3b(255,255,255)) self.cardList = app.room:getTableList(list) self.srcCardList = app.room:getTableList(srcList) end) end bottomLayout:requestDoLayout() bottomLayout:doLayout() topLayout:requestDoLayout() topLayout:doLayout() end end --隐藏自身 function PKRoomOperationView:hideSelf(isHideAll) self.ui.Items.Layout_operatorPanel:setVisible(false) self.ui.Items.Layout_BaoPai:setVisible(false) self.ui.Items.Layout_FanBao:setVisible(false) if isHideAll then self.ui.Items.Layout_CallCard:setVisible(false) end self.ui.Items.Layout_ChoiceCard:setVisible(false) end function PKRoomOperationView:ChoiceViewIsVisible() return self.ui.Items.Layout_ChoiceCard:isVisible() end return PKRoomOperationView;