25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 lines
2.5 KiB

  1. local MJDefine = MJFramework.MJImport("mj.luaScript.MJDefine")
  2. local MJMessage = MJFramework.MJImport("mj.luaScript.Protocol.MJMessage")
  3. local MJSound = MJFramework.MJImport("mj.luaScript.MJSound")
  4. local Mahjong3DHandCard = MJFramework.MJFrameworkClassImprot("mj.luaScript.Common.3d.Mahjong3DHandCard")
  5. local HandCard3D = class("HandCard3D", Mahjong3DHandCard)
  6. function HandCard3D:ctor(...)
  7. HandCard3D.super.ctor(self, ...)
  8. end
  9. --- HandCard3D:onAfterCreateHandcards 创建手牌之后的处理
  10. function HandCard3D:onAfterCreateHandcards()
  11. HandCard3D.super.onAfterCreateHandcards(self)
  12. end
  13. function HandCard3D:onAfterCreateOpenHandcards()
  14. HandCard3D.super.onAfterCreateOpenHandcards(self)
  15. end
  16. -- 重写排序,让听用牌放在最左边
  17. function HandCard3D:sortHandCards()
  18. -- 拆分
  19. local temp = {}
  20. local tCard = {}
  21. local nCard = {}
  22. local qCard = {}
  23. for i, v in ipairs(self._handCardNodes) do
  24. if v:getIsTingYongCard() then
  25. table.insert(tCard, v)
  26. elseif v:getIsDingQueCard() or (v:getMJColorType() == self.queType) then
  27. table.insert(qCard, v)
  28. else
  29. table.insert(nCard, v)
  30. end
  31. end
  32. -- 按牌值顺序排序
  33. local function sortFun(c1, c2)
  34. return c1:getValue() < c2:getValue()
  35. end
  36. table.sort(tCard, sortFun)
  37. table.sort(nCard, sortFun)
  38. table.sort(qCard, sortFun)
  39. -- 添加到大表temp里面
  40. for i, v in ipairs(tCard) do
  41. table.insert(temp, v)
  42. end
  43. for i, v in ipairs(nCard) do
  44. table.insert(temp, v)
  45. end
  46. for i, v in ipairs(qCard) do
  47. table.insert(temp, v)
  48. end
  49. self._handCardNodes = temp
  50. end
  51. --发送出牌消息
  52. function HandCard3D:sendOutCard()
  53. app.room:dispatchEvent({name = MJDefine.MJEvent.checkIsNeedSendGuo})
  54. HandCard3D.super.sendOutCard(self)
  55. end
  56. --判断是否符合换三张规则
  57. function HandCard3D:checkIsInSwapRule()
  58. local roomInfo=app.room.roomInfo
  59. local gameInfo=json.decode(roomInfo.strGameInfo)
  60. local selectNums = #self._selectCards
  61. --local tipsMessage = "当前服务器传下来换牌的张数:" .. gameInfo.swapcardcount .. "当前选中的牌张数:" .. selectNums;
  62. --showTooltip(tipsMessage)
  63. if selectNums ~= tonumber(gameInfo.swapcardcount) then
  64. return false
  65. end
  66. local huase = self._selectCards[1]:getMJColorType()
  67. for i,v in pairs(self._selectCards) do
  68. local tHuase = v:getMJColorType()
  69. if tHuase ~= huase then
  70. return false
  71. end
  72. end
  73. return true
  74. end
  75. return HandCard3D