|
- local MJDefine = MJFramework.MJImport("mj.luaScript.MJDefine")
- local MJMessage = MJFramework.MJImport("mj.luaScript.Protocol.MJMessage")
- local MJSound = MJFramework.MJImport("mj.luaScript.MJSound")
- local Mahjong3DHandCard = MJFramework.MJFrameworkClassImprot("mj.luaScript.Common.3d.Mahjong3DHandCard")
-
- local HandCard3D = class("HandCard3D", Mahjong3DHandCard)
-
- function HandCard3D:ctor(...)
- HandCard3D.super.ctor(self, ...)
- end
-
- --- HandCard3D:onAfterCreateHandcards 创建手牌之后的处理
- function HandCard3D:onAfterCreateHandcards()
- HandCard3D.super.onAfterCreateHandcards(self)
- end
-
- function HandCard3D:onAfterCreateOpenHandcards()
- HandCard3D.super.onAfterCreateOpenHandcards(self)
- end
-
-
- -- 重写排序,让听用牌放在最左边
- function HandCard3D:sortHandCards()
- -- 拆分
- local temp = {}
- local tCard = {}
- local nCard = {}
- local qCard = {}
-
- for i, v in ipairs(self._handCardNodes) do
- if v:getIsTingYongCard() then
- table.insert(tCard, v)
- elseif v:getIsDingQueCard() or (v:getMJColorType() == self.queType) then
- table.insert(qCard, v)
- else
- table.insert(nCard, v)
- end
- end
-
- -- 按牌值顺序排序
- local function sortFun(c1, c2)
- return c1:getValue() < c2:getValue()
- end
-
- table.sort(tCard, sortFun)
- table.sort(nCard, sortFun)
- table.sort(qCard, sortFun)
-
- -- 添加到大表temp里面
- for i, v in ipairs(tCard) do
- table.insert(temp, v)
- end
-
- for i, v in ipairs(nCard) do
- table.insert(temp, v)
- end
-
- for i, v in ipairs(qCard) do
- table.insert(temp, v)
- end
-
- self._handCardNodes = temp
- end
-
- --发送出牌消息
- function HandCard3D:sendOutCard()
- app.room:dispatchEvent({name = MJDefine.MJEvent.checkIsNeedSendGuo})
- HandCard3D.super.sendOutCard(self)
- end
-
- --判断是否符合换三张规则
- function HandCard3D:checkIsInSwapRule()
- local roomInfo=app.room.roomInfo
- local gameInfo=json.decode(roomInfo.strGameInfo)
-
- logD("HandCard3D:gameInfo.swapcolourcard "..gameInfo.swapcolourcard)
-
- local selectNums = #self._selectCards
- logD("HandCard3D:checkIsInSwapRule1 "..selectNums)
- if selectNums ~= 3 then
- return false
- end
-
- --如果勾选了可换不同花色则不需要花色判断 只判断数量
- if tonumber(gameInfo.swapcolourcard)==1 and selectNums == 3 then
- return true
- end
-
- if not gameInfo.swapcolourcard or tonumber(gameInfo.swapcolourcard)==0 then
- local huase = self._selectCards[1]:getMJColorType()
- logD("HandCard3D:checkIsInSwapRule2 "..huase)
- for i,v in pairs(self._selectCards) do
- local tHuase = v:getMJColorType()
- logD("HandCard3D:checkIsInSwapRule3 "..tHuase)
- if tHuase ~= huase then
- return false
- end
- end
- logD("HandCard3D:checkIsInSwapRule4 ")
- return true
- end
- end
-
- return HandCard3D
-
|