|
- 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
-
-
- function HandCard3D:createGroup(values, showType, viewId, groupIndex)
- local group = nil
-
- if showType and showType <= 5 then
- if showType == MJDefine.MJGroupType.MAnGang then
- group = require(MJDefine.MJConfig_3d.GROUP_MAGANG):new(values, viewId, groupIndex)
- else
- group = HandCard3D.super.createGroup(self, values, showType, viewId, groupIndex)
- end
- end
-
- if group and viewId == MJDefine.MyViewId then
- group:setLocalZOrder(4 - groupIndex)
- end
- return group
- end
-
-
- function HandCard3D:createGroupCards(arg, fromViewId)
- for _, v in pairs(arg) do
- if not fromViewId then
- fromViewId = v.fromViewId
- end
- local startPos = MJDefine.MJConfig_3d.HandCardStartPos[self._viewId]
- local group = self:createGroup(v.values, v.showType, self._viewId, table.nums(self._groupNodes) + 1)
- if group then
- local x = startPos.x + MJDefine.MJConfig_3d.GroupOffsetConfig[self._viewId][#self._groupNodes + 1].x
- local y = startPos.y + MJDefine.MJConfig_3d.GroupOffsetConfig[self._viewId][#self._groupNodes + 1].y
-
- if group and (v.opType == MJDefine.MJOperateType.OPREATE_PENG
- or v.opType == MJDefine.MJOperateType.OPREATE_ZHIGANG
- or v.opType == MJDefine.MJOperateType.OPREATE_BAGANG) then
- --设置吃碰杠来源
- group:setDirection(self._viewId,fromViewId)
- end
-
- group.opType = v.opType
- group:setPosition(cc.p(x, y))
- group:customRefresh(v)
- self:addChild(group)
- table.insert(self._groupNodes, group)
- end
- end
- self:refreshGroupZOrder()
- end
-
-
- function HandCard3D:sortHandCards()
- table.sort(
- self._handCardNodes,
- function(c1, c2)
- if c1:getValue() == 0x41 and c2:getValue() == 0x41 then
- return false
- elseif c1:getValue() == 0x41 then
- return true
- elseif c2:getValue() == 0x41 then
- return false
- else
- return c1:getValue() < c2:getValue()
- end
-
- end
- )
- end
-
-
- function HandCard3D:buGang(card, cardNum)
- local oldGroup = self:getGroup(card, {MJDefine.MJOperateType.OPREATE_BAGANG, MJDefine.MJOperateType.OPREATE_ZHIGANG, MJDefine.MJOperateType.OPREATE_ANGANG});
- if oldGroup then
- local cards = oldGroup:getCards();
- if cards and cards[4] then
- oldGroup:setCardNum(cardNum)
- oldGroup:customRefresh()
- end
- return ;
- else
- oldGroup=self:getGroup(card,{MJDefine.MJOperateType.OPREATE_PENG})
- end
-
- if not oldGroup then
- return
- end
-
- local fromViewId = oldGroup.fromViewId
- -- 杠牌对家,换成第四张
- --[[
- if app.room:getMaxPlayerCount() == 2 and fromViewId ~= 0 then
- fromViewId = 4
- end
- if app.room:getMaxPlayerCount() == 4 and fromViewId == 2 then
- fromViewId = 4
- end
- ]]
-
- local index = table.indexOf(self._groupNodes, oldGroup)
- table.remove(self._groupNodes, index)
- oldGroup:removeFromParent()
-
- local newGroup = self:createGroup({card, card, card, card}, MJDefine.MJGroupType.Gang, self._viewId,index)
- if not newGroup then
- return
- end
- newGroup.fromViewId = fromViewId
- newGroup.opType = MJDefine.MJOperateType.OPREATE_BAGANG
- table.insert(self._groupNodes, index, newGroup)
-
-
- local startPos = MJDefine.MJConfig_3d.HandCardStartPos[self._viewId]
- local x = startPos.x + MJDefine.MJConfig_3d.GroupOffsetConfig[self._viewId][index].x
- local y = startPos.y + MJDefine.MJConfig_3d.GroupOffsetConfig[self._viewId][index].y
- newGroup:setPosition(cc.p(x, y))
- newGroup:customRefresh(newGroup)
- self:addChild(newGroup)
- self:refreshGroupZOrder()
- end
-
-
- function HandCard3D:pushTing()
- self:clearAllTing()
- local tings = app.room.roomInfo.tings
- if tings then
- for value, v in pairs(tings) do
- for _, mj in pairs(self._handCardNodes) do
- if mj:getValue() == value then
- mj:setTing(true)
- end
- end
- end
- end
- end
-
- return HandCard3D
-
|