You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

377 line
11 KiB

  1. local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
  2. local MJ=MJFramework.MJImport("mj.luaScript.Views.Game.MJ")
  3. local MJWanFa=MJFramework.ImportWanFa("luaScript.SubGameDefine.MaJiang.MJWanFa")
  4. local MJRoomXiaoJuView = MJFramework.MJFrameworkClassImprot("mj.luaScript.Views.Room.MJRoomXiaoJuView")
  5. -- 房间设置界面
  6. local hongzhongRoomXiaoJuView = class("hongzhongRoomXiaoJuView", MJRoomXiaoJuView)
  7. local MJ_WIDTH=47
  8. --起始位置
  9. local MJ_HAND_CARD_INIT_X = 150 * g_radio_x
  10. local MJ_HAND_CARD_INIT_Y = 50 * g_radio_y
  11. local MJ_GROUP_CARD_INIT_X = 100 * g_radio_x
  12. --麻将组间隔
  13. local MJ_GROUP_PADDING_X=0
  14. --麻将直接间隔
  15. local MJ_PADDING_X=-3
  16. --胡牌麻将间隔
  17. local MJ_HU_X=8
  18. --暗杠上面的牌Y轴偏移量
  19. local GANG_OFFSET_Y=16
  20. function hongzhongRoomXiaoJuView:ctor()
  21. hongzhongRoomXiaoJuView.super.ctor(self)
  22. --self:loadUI()
  23. --添加扎鸟UI
  24. -- local ui = loadUI("hongzhong/res/ui_fangjian/hongzhong_ui_xiaoju.ui")
  25. -- self.zhaniaoUI = ui
  26. -- self.ui.Items.Layout_Content:addChild(ui)
  27. --获取红中设置参数里的麻将颜色
  28. self.mjColor = loadUserInfo("hongzhong_mj_color") or MJDefine.DesktopType.TwoDGold
  29. self:changeHandCardY(50 * g_radio_y)
  30. end
  31. function hongzhongRoomXiaoJuView:loadUI()
  32. local ui = loadUI("hongzhong/res/ui_fangjian/hongzhong_ui_xiaoju.ui")
  33. self.ui = ui
  34. self:addChild(ui)
  35. end
  36. function hongzhongRoomXiaoJuView:setPlayerItemInfo(ui,player)
  37. hongzhongRoomXiaoJuView.super.setPlayerItemInfo(self,ui,player)
  38. local roomInfo = app.room.roomInfo
  39. local nodeResult= ui.Items["Text_ResultInfo"]
  40. local nodeBg= ui.Items["ImageView_ItemBg"]
  41. local strResult=""
  42. local benJuScore = "TextBMFont_Score"
  43. local benJuScore1 = "Text_Score"
  44. local nodeBenJu = ui.Items[benJuScore]
  45. local bmFontScore = true
  46. if not nodeBenJu then
  47. nodeBenJu = ui.Items[benJuScore1]
  48. bmFontScore = false
  49. end
  50. local gameInfo=json.decode(roomInfo.strGameInfo)
  51. if gameInfo.piaotype and tonumber(gameInfo.piaotype)==1 and player.nPiaoNum>-1 then
  52. if player.nPiaoNum==0 then
  53. strResult=strResult=="" and "不飘 " or strResult.." 不飘"
  54. else
  55. strResult=strResult=="" and "飘分"..player.nPiaoNum.." " or strResult.." 飘分"..player.nPiaoNum
  56. end
  57. end
  58. if app.room.roomInfo.scoreCntMap and app.room.roomInfo.scoreCntMap[tostring(player.nUserId)] then
  59. strResult=strResult..app.room.roomInfo.scoreCntMap[tostring(player.nUserId)]
  60. end
  61. -- if then return end
  62. nodeResult:setVisible(true)
  63. nodeResult:setString(strResult)
  64. if tonumber(player.nTurnScore) > 0 then
  65. nodeBg:loadTexture("mj_xiao_ju1_item_hu_bg.png",cc.TextureResType.plistType)
  66. nodeBg:setVisible(true)
  67. else
  68. nodeBg:setVisible(false)
  69. end
  70. if tonumber(player.nTurnScore) > 0 then
  71. nodeBenJu:setText("+"..player.nTurnScore)
  72. else
  73. nodeBenJu:setText(player.nTurnScore)
  74. if tonumber(player.nTurnScore)<0 and bmFontScore == true then
  75. nodeBenJu:setFntFile("res/fonts/dt_jian_num.fnt")
  76. end
  77. end
  78. if player.result~=MJDefine.MJGameResultType.Win then
  79. return
  80. end
  81. local resultInfo=json.decode(roomInfo.strResultInfo)
  82. -- resultInfo.zhongniaocards=" 0x01"
  83. local huImg=ui.Items.ImageView_Hu
  84. -- huImg:setPositionX(huImg:getPositionX()+40)
  85. -- 不在这里显示中鸟了,小局下面已经显示了 屏蔽by yuncai
  86. --[[local zhongniaocards=string.ltrim(resultInfo.zhongniaocards)
  87. local tabZhongniaocards=string.split(zhongniaocards," ")
  88. if resultInfo.zhongniaocards~="" and #tabZhongniaocards>0 then
  89. local zhongNiao=cc.Sprite:create("hongzhong/res/zy_fangjian/hongzhong_zhong_niao.png")
  90. ui.Items.Layout_Player:addChild(zhongNiao)
  91. local y=ui.Items.Layout_Player:getContentSize().height/2
  92. zhongNiao:setPosition(825,y)
  93. if #tabZhongniaocards>4 then
  94. y=ui.Items.Layout_Player:getContentSize().height/2+28
  95. end
  96. local x=0
  97. for k,v in pairs(tabZhongniaocards) do
  98. local mj=MJ:new(v,MJDefine.MJType.Out,MJDefine.MyViewId)
  99. mj:setScale(0.8)
  100. ui.Items.Layout_Player:addChild(mj)
  101. local mjWidth=mj:getContentSize().width*0.8
  102. local mjHeight=mj:getContentSize().height
  103. local index=k%4
  104. if k==4 then
  105. index=4
  106. end
  107. index=index==0 and 1 or index
  108. x=825+index*(mjWidth+MJ_PADDING_X)+20
  109. if k>4 then
  110. mj:setPosition(x,y-48)
  111. else
  112. mj:setPosition(x,y)
  113. end
  114. end
  115. else
  116. end--]]
  117. end
  118. function hongzhongRoomXiaoJuView:initOther()
  119. -- hongzhongRoomXiaoJuView.super.initOther(self)
  120. local roomInfo = app.room.roomInfo
  121. self.ui.Items.Text_Round:setText("局数:"..roomInfo.nGameStartCount..'/'..roomInfo.nTotalGameNum)
  122. --房号
  123. self.ui.Items.Text_RoomNum:setText("房号:"..roomInfo.nShowTableId)
  124. local resultInfo=json.decode(roomInfo.strResultInfo)
  125. --规则
  126. local ruleAll = MJWanFa.getWanFaInfo(roomInfo.strGameInfo)
  127. local item = self.ui.Items.Text_Rule:getCopied()
  128. item:setVisible(true)
  129. item:setText(ruleAll)
  130. self.ui.Items.ListView:addChild(item)
  131. self.ui.Items.ListView:hideAllBar()
  132. self.ui.Items.ListView:getInnerContainer():setAutoSize(true)
  133. self.ui.Items.ListView:requestDoLayout();
  134. self.ui.Items.ListView:doLayout();
  135. --时间
  136. self.ui.Items.Text_Time:setText(os.date("%m-%d %X"))--(getTimeString())
  137. local zhaniaocards=string.ltrim(resultInfo.zhaniaocards)
  138. local tabZhaniaocards=string.split(zhaniaocards," ")
  139. if resultInfo.zhaniaocards=="" then
  140. tabZhaniaocards={}
  141. end
  142. local zhongniaocards=string.ltrim(resultInfo.zhongniaocards)
  143. local tabZhongniaocards=string.split(zhongniaocards," ")
  144. if resultInfo.zhongniaocards=="" then
  145. tabZhongniaocards={}
  146. end
  147. if #tabZhaniaocards>0 then
  148. for k,v in pairs(tabZhaniaocards) do
  149. local mj=MJ:new(v,MJDefine.MJType.Stand,MJDefine.MyViewId)
  150. mj:setScale(0.5)
  151. self.ui.Items.Layout_Niao:addChild(mj)
  152. local mjWidth=mj:getContentSize().width*0.5
  153. local mjHeight=mj:getContentSize().height*0.5
  154. local x=mjWidth/2+(k-1)*(mjWidth+MJ_PADDING_X)
  155. local y=mjHeight/2+20
  156. mj:setPosition(x,y)
  157. mj:setStatus(MJDefine.MJStatus.Select)
  158. local niaoImg=cc.Sprite:create("hongzhong/res/zy_fangjian/hongzhong_niao2.png")
  159. mj:addChild(niaoImg)
  160. niaoImg:setScale(2)
  161. niaoImg:setPosition(mj:getContentSize().width/2,mj:getContentSize().height)
  162. for index,niao in pairs(tabZhongniaocards) do
  163. if v==niao then
  164. niaoImg:setTexture("hongzhong/res/zy_fangjian/hongzhong_niao1.png")
  165. mj:setStatus(MJDefine.MJStatus.Normal)
  166. table.remove(tabZhongniaocards,index)
  167. break
  168. end
  169. end
  170. end
  171. end
  172. end
  173. function hongzhongRoomXiaoJuView:createChi(values)
  174. local node=cc.Layer:create()--Color:create(cc.c4b(255,0,0,255))
  175. node:setAnchorPoint(cc.p(0.5,0.5))
  176. node:ignoreAnchorPointForPosition(false)
  177. local width=0
  178. local height=0
  179. for i=1,3 do
  180. if values[i] then
  181. local mj=MJ:new(values[i],MJDefine.MJType.Out,MJDefine.MyViewId,self.mjColor)
  182. node:addChild(mj)
  183. local mjWidth=mj:getContentSize().width
  184. local mjHeight=mj:getContentSize().height
  185. local x=mjWidth/2+(i-1)*(mjWidth+MJ_PADDING_X)
  186. local y=mjHeight/2
  187. width=width+mjWidth
  188. height=mjHeight
  189. mj:setPosition(x,y)
  190. end
  191. end
  192. node:setContentSize(cc.size(width,height))
  193. return node
  194. end
  195. function hongzhongRoomXiaoJuView:createGang(values)
  196. local node=cc.Layer:create()--Color:create(cc.c4b(255,0,0,255))
  197. node:setAnchorPoint(cc.p(0.5,0.5))
  198. node:ignoreAnchorPointForPosition(false)
  199. local width=0
  200. local height=0
  201. for i=1,4 do
  202. if values[i] then
  203. local mj=MJ:new(values[i],MJDefine.MJType.Out,MJDefine.MyViewId,self.mjColor)
  204. node:addChild(mj)
  205. local mjWidth=mj:getContentSize().width
  206. local mjHeight=mj:getContentSize().height
  207. local x=mjWidth/2+(i-1)*(mjWidth+MJ_PADDING_X)
  208. local y=mjHeight/2
  209. width=width+mjWidth
  210. height=mjHeight
  211. mj:setPosition(x,y)
  212. end
  213. end
  214. node:setContentSize(cc.size(width,height))
  215. return node
  216. end
  217. function hongzhongRoomXiaoJuView:createAnGang(values)
  218. local node=cc.Layer:create()--Color:create(cc.c4b(255,0,0,255))
  219. node:setAnchorPoint(cc.p(0.5,0.5))
  220. node:ignoreAnchorPointForPosition(false)
  221. local width=0
  222. local height=0
  223. for i=1,4 do
  224. if values[i] then
  225. local mj
  226. local mjWidth
  227. local mjHeight
  228. if i<=3 then
  229. mj=MJ:new(values[i],MJDefine.MJType.OutBlack,MJDefine.MyViewId,self.mjColor)
  230. if self.mjColor == MJDefine.DesktopType.TwoDGold then
  231. mj:setAutoSize(false)
  232. mj:setSize(cc.size(36,55))
  233. mjWidth, mjHeight = 36, 55
  234. elseif self.mjColor == MJDefine.DesktopType.TwoD then
  235. mj:setAutoSize(false)
  236. mj:setSize(cc.size(47,68))
  237. mjWidth, mjHeight = 47,68
  238. end
  239. else
  240. mj=MJ:new(values[i],MJDefine.MJType.Out,MJDefine.MyViewId,self.mjColor)
  241. end
  242. node:addChild(mj)
  243. local mjWidth= mjWidth or mj:getContentSize().width
  244. local mjHeight= mjHeight or mj:getContentSize().height
  245. local x=mjWidth/2+(i-1)*(mjWidth+MJ_PADDING_X)
  246. local y=mjHeight/2
  247. if i <= 3 then
  248. y = y + 4
  249. end
  250. width=width+mjWidth
  251. height=mjHeight
  252. mj:setPosition(x,y)
  253. end
  254. end
  255. node:setContentSize(cc.size(width,height))
  256. return node
  257. end
  258. function hongzhongRoomXiaoJuView:createHandCards(layer,arg,seatId)
  259. --红中摆前面
  260. local temp1={}
  261. local temp2={}
  262. for k,v in pairs(arg) do
  263. if v.card==0x41 then
  264. table.insert(temp1,v)
  265. else
  266. table.insert(temp2,v)
  267. end
  268. end
  269. local cards={}
  270. table.insertTo(cards,temp1)
  271. table.insertTo(cards,temp2)
  272. for k,v in pairs(cards) do
  273. local mj=MJ:new(v.card,MJDefine.MJType.Out,MJDefine.MyViewId, self.mjColor)
  274. layer:addChild(mj)
  275. mj:setPosition(cc.p(self.initX[seatId],MJ_HAND_CARD_INIT_Y))
  276. self.initX[seatId]=self.initX[seatId]+mj:getContentSize().width + MJ_PADDING_X
  277. end
  278. for i,v in pairs(layer:getChildren()) do
  279. --[[if v and v.newValue then
  280. print("v.newValue ================= "..v.newValue)
  281. end--]]
  282. if tonumber(v.newValue) == 41 then
  283. local laiFlog = cc.Sprite:createWithSpriteFrameName("mj_flog_laizi_out.png")
  284. laiFlog:setScale(0.7)
  285. --laiFlog:setTag(MJ.MJ_HAND_CARD_FLAG_LAIZI)
  286. v:addChild(laiFlog)
  287. if self.mjColor == MJDefine.DesktopType.TwoDGold then
  288. laiFlog:setPosition(14,45)
  289. else
  290. laiFlog:setPosition(14,61)
  291. end
  292. end
  293. end
  294. end
  295. function hongzhongRoomXiaoJuView:createHuCard(layer,card,seatId)
  296. local mj=MJ:new(card,MJDefine.MJType.Out,MJDefine.MyViewId, self.mjColor)
  297. layer:addChild(mj)
  298. mj:setPosition(cc.p(self.initX[seatId], MJ_HAND_CARD_INIT_Y))
  299. self.initX[seatId]=self.initX[seatId] + mj:getContentSize().width + MJ_PADDING_X
  300. local flag = cc.Sprite:create("mj/res/ui/zy_fangjian/mj_hu_flag.png")
  301. mj:addChild(flag)
  302. if self.mjColor == MJDefine.DesktopType.TwoDGold then
  303. flag:setPosition(cc.p(16,40))
  304. else
  305. flag:setPosition(cc.p(16,55))
  306. end
  307. end
  308. -- 分辨率改变回调(针对部分机型切后台后,导致牌数据位置不对(宽高分辨率对调了),暂时处理部分游戏)
  309. function hongzhongRoomXiaoJuView:applicationScreenSizeChanged()
  310. if not next(self.items) then
  311. return
  312. end
  313. MJ_HAND_CARD_INIT_X=150 * g_radio_x
  314. MJ_HAND_CARD_INIT_Y=50 * g_radio_y
  315. MJ_GROUP_CARD_INIT_X=100 * g_radio_x
  316. hongzhongRoomXiaoJuView.super.applicationScreenSizeChanged(self)
  317. end
  318. return hongzhongRoomXiaoJuView