|
- require("luaScript.Views.Room.RoomFunctions")
- local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
- local MJRoomView = MJFramework.MJFrameworkClassImprot("mj_xzdd.luaScript.Views.Room.xzddRoomView")
- local xzdd2rRoomView = class("xzdd2rRoomView", MJRoomView)
-
- function xzdd2rRoomView:ctor()
- xzdd2rRoomView.super.ctor(self)
- end
-
- -- 换牌张数
- function xzdd2rRoomView:getSwapCardCount()
- local gameInfo = json.decode(app.room.roomInfo.strGameInfo)
- local swapcard = tonumber(gameInfo.swapcard) or 4
-
- print('swapcard->', swapcard)
- return swapcard
- end
-
- --换三张,服务器会通过0x8122通知换牌(过滤一下数据,换3换4都为4张牌,但换3的第4张牌数值为0)
- function xzdd2rRoomView:onNoticeSwapCardResponse(response)
- local function runNoticeSwapCard(onEnd)
- logD("xzdd2rRoomView:onNoticeSwapCardResponse")
- local data = response.response
- self:showSwapCard(true)
- self.playerHandCards[MJDefine.MyViewId]:initSwapCardTouchEvent()
- --弹出推荐牌
- self.playerHandCards[MJDefine.MyViewId]:resetHandCards()
-
- -- 过滤0值
- local swapDatas = clone(data.swapCards.Datas)
- for i = #swapDatas, 1, -1 do
- if swapDatas[i].card == 0 then
- table.remove(swapDatas, i)
- end
- end
-
- self.playerHandCards[MJDefine.MyViewId]:selectCardsByCards(data.swapCards)
- self.swapCard.Items.Button_sure:setEnabled(true)
-
- if onEnd then
- onEnd()
- end
- end
- logD("xzdd2rRoomView:runNoticeSwapCard")
- self:addCallBack(runNoticeSwapCard)
- end
-
- function xzdd2rRoomView:showSwapCard(isOpered)--是否已经操作过
- xzdd2rRoomView.super.showSwapCard(self, isOpered)
-
- local txtTable = {
- [3] = '选择以下三张 底牌',
- [4] = '选择以下四张 底牌',
- }
-
- self.swapCard.Items.Text_tip1:setText(txtTable[self:getSwapCardCount()])
- end
-
- --换三张成功后的信息
- function xzdd2rRoomView:onChangeCardInfo(response)
- local function runChangeCardInfo(onEnd)
- logD("xzddRoomView:onChangeCardInfo")
- self:hideSwapCard()
- local data = response.response
- self:showSwapDirection(data.swapType)
- for i,v in pairs(data.swapCards) do
- for i=1,4 do
- if v.card ~= 0 then
- if i == MJDefine.MyViewId and self.playerHandCards[MJDefine.MyViewId] then
- self.playerHandCards[MJDefine.MyViewId]:onGetCard(nil,tonumber(v.card),true)
- elseif self.playerHandCards[i] then
- self.playerHandCards[i]:onGetCard(nil,0,true)
- end
- end
- end
- end
- self.playerHandCards[MJDefine.MyViewId]:resetHandCards()
- for i=1,4 do
- if self.playerHandCards[i] then
- self.playerHandCards[i]:deleteSwapCards()
- end
- end
- self.playerHandCards[MJDefine.MyViewId]:removeTouchEventOnly()
- --两人麻将没有定缺,2D金黄大换三张后不能出牌,这里初始化一下touch事件
- self.playerHandCards[MJDefine.MyViewId]:initTouchEvent()
- for i,v in pairs(data.swapCards) do
- local handCards = self.playerHandCards[MJDefine.MyViewId]:getHandCardNodes() or {}
-
- if v.card ~= 0 then
- for j,mjCard in pairs(handCards) do
- if mjCard:getValue() == tonumber(v.card) and mjCard:getSelected() ~= MJDefine.MJStatus.Select then
- --local mjCard = self.playerHandCards[MJDefine.MyViewId]:getMjByValue(tonumber(v.card))
- --if mjCard and mjCard:getSelected() ~= MJDefine.MJStatus.Select then
- mjCard:setSelected(MJDefine.MJStatus.Select)
- mjCard:recordPostion()
- local initPos = mjCard:getPosition()
- local toPos = cc.p(initPos.x, initPos.y + 25)
- mjCard:setPosition(toPos)
- mjCard:runDeSelectAnimationWithTime(1.0)
- mjCard:runAction(cc.Sequence:create(cc.DelayTime:create(1.0),cc.CallFunc:create(function()
- mjCard:setSelected(MJDefine.MJStatus.Normal)
- end)))
- break
- end
- --end
- end
- end
- end
- --[[self:runAction(cc.Sequence:create(cc.DelayTime:create(1.0),cc.CallFunc:create(function()
- self.playerHandCards[MJDefine.MyViewId]:initTouchEvent()
- end)))--]]
-
- if onEnd then
- onEnd()
- end
- end
- logD("xzddRoomView:runChangeCardInfo--------")
- self:addCallBack(runChangeCardInfo)
- end
-
- -- 强制更改为对家
- function xzdd2rRoomView:showSwapDirection(dir)
- if dir then
- dir = 2
- end
-
- xzdd2rRoomView.super.showSwapDirection(self, dir)
- end
-
- return xzdd2rRoomView
|