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.

329 lines
9.5 KiB

  1. require("luaScript.Views.Room.RoomFunctions")
  2. -- 房间设置界面
  3. local RoomToolView_28 = class("RoomToolView_28", cc.UIView)
  4. local Functions = require("pk_doudizhu.luaScript.Functions_28")
  5. function RoomToolView_28:ctor()
  6. RoomToolView_28.super.ctor(self)
  7. --是否是该场景点了准备
  8. self.isTouchCurScene = false
  9. end
  10. function RoomToolView_28:onEnter()
  11. RoomToolView_28.super.onEnter(self)
  12. local ui = loadUI("pk_doudizhu/res/ui/ui_fangjian/doudizhu_ui_Tool.ui")
  13. self:addChild(ui)
  14. self.ui = ui
  15. -- 菜单按钮
  16. self.ui.Items.Button_Menu:registerClick(handler(self , self.onClickMenu))
  17. -- 菜单布局
  18. self.ui.Items.Layout_Menu:registerClick(handler(self , self.onClickMenu))
  19. -- 菜单布局背景
  20. self.ui.Items.Layout_7:registerClick(handler(self , self.onClickMenu))
  21. -- 离开按钮
  22. self.ui.Items.Button_Leave:registerClick(handler(self , self.onClickLeave))
  23. -- 设置按钮
  24. self.ui.Items.Button_Set:registerClick(function ()
  25. playBtnEffect()
  26. local view = import("pk_doudizhu.luaScript.Views.Room.RoomSettingView_28"):new()
  27. view:setAnchorPoint(cc.p(0.5, 0.5))
  28. app:showWaitDialog(view)
  29. end)
  30. -- 解散按钮
  31. self.ui.Items.Button_Dissmiss:registerClick(function ()
  32. playBtnEffect()
  33. app.room:requestDismissRoom(1)
  34. end)
  35. --坐标记录
  36. -- self.setPos = self.ui.Items.Button_Set:getPosition()
  37. -- self.menuPos = self.ui.Items.Button_Menu:getPosition()
  38. -- self.leavePos = self.ui.Items.Button_Leave:getPosition()
  39. -- self.rulePos = self.ui.Items.Button_UpLoad:getPosition()
  40. -- self.dissmissPos = self.ui.Items.Button_Dissmiss:getPosition()
  41. -- self.ui.Items.Button_Set:setPosition(self.menuPos)
  42. -- self.ui.Items.Button_Leave:setPosition(self.menuPos)
  43. -- self.ui.Items.Button_UpLoad:setPosition(self.menuPos)
  44. -- self.ui.Items.Button_Dissmiss:setPosition(self.menuPos)
  45. self.ui.Items.Layout_Menu:setVisible(false)
  46. self:setMenuVisible(false)
  47. -- 邀请微信好友
  48. self.ui.Items.Button_Invite:registerClick(handler(self , self.onClickFriends))
  49. -- 准备按钮
  50. self.ui.Items.Button_Ready:registerClick(handler(self , self.onClickReady))
  51. --邀请俱乐部成员
  52. self.ui.Items.Button_Invite_Club:registerClick(handler(self , self.onClickInviteClub))
  53. --上传日志
  54. -- self.ui.Items.Button_UpLoad:registerClick(handler(self , self.onClickUpLoad))
  55. if app.club_php.clubID and app.club_php.clubID ~= 0 then
  56. self.ui.Items.Button_Club:setVisible(true)
  57. --切换回亲友圈
  58. self.ui.Items.Button_Club:registerClick(handler(self, self.onClickBaojian))
  59. else
  60. self.ui.Items.Button_Club:setVisible(false)
  61. end
  62. if isReviewVersion() then
  63. self.ui.Items.Layout_Invite:setVisible(false)
  64. self.ui.Items.Layout_Invite_Club:setVisible(false)
  65. self.ui.Items.Layout_Button:requestDoLayout();
  66. self.ui.Items.Layout_Button:doLayout();
  67. end
  68. self:checkCanDismiss()
  69. end
  70. -- 邀请好友
  71. function RoomToolView_28:onClickFriends()
  72. playBtnEffect()
  73. local tt = {
  74. [0] = "零缺三",
  75. [1] = "一缺二",
  76. [2] = "二缺一",
  77. [3] = "满座",
  78. }
  79. local num = table.nums(app.room.roomInfo.memberList)
  80. --根据游戏类型分享
  81. local roomInfo = app.room.roomInfo
  82. local jsonInfo = json.decode(roomInfo.strGameInfo)
  83. local gameConfig = getSubGameConfig(app.gameId)
  84. local gamerule = Functions.getCurGameRule()
  85. local strGameNum = string.format("%s局", app.room.roomInfo.nTotalGameNum)
  86. local title = string.format("%s - %s 房号[%s] %s %s", gameConfig.gameName, gameConfig.GameType[gamerule], app.room.roomInfo.nShowTableId, tt[num], strGameNum)
  87. if app.club_php.clubID and app.club_php.clubID ~= 0 then
  88. title = string.format("%s 亲友圈ID[%d]", title, tonumber(app.club_php.clubID))
  89. end
  90. local strGameMode = Functions.getRuleStr()
  91. strGameMode = strGameMode .. " " .. app.room.roomInfo.nMaxPlayCount .. "人" .. " "
  92. local strNames = ""
  93. local index = 0
  94. for k,v in pairs(app.room.roomInfo.memberList) do
  95. index = index + 1
  96. local userInfo = json.decode(v.userInfo)
  97. local name = getSubStringNickname(userInfo.nickname)
  98. strNames = strNames..name
  99. if index < num then
  100. strNames = strNames .. ","
  101. end
  102. end
  103. local desc = string.format("%s \n玩家:%s", strGameMode, strNames)
  104. print(desc)
  105. local info = {}
  106. info.title = title
  107. info.description = desc
  108. info.copyData = { type = 2 }
  109. local view = import("luaScript.Views.Main.ShareView"):new(info)
  110. view:setAnchorPoint(cc.p(0.5, 0.5))
  111. app:showWaitDialog(view)
  112. end
  113. function RoomToolView_28:onClickUpLoad()
  114. playBtnEffect()
  115. local view = import("luaScript.Views.Room.UplogView"):new()
  116. view:setAnchorPoint(cc.p(0.5, 0.5))
  117. app:showWaitDialog(view)
  118. end
  119. function RoomToolView_28:onClickRule()
  120. playBtnEffect()
  121. self.ui.Items.ImageView_Rule_bg:setVisible(not self.ui.Items.ImageView_Rule_bg:isVisible())
  122. --Functions.playZiPaiVoiceOperation(1,1023152,nil,1)
  123. end
  124. function RoomToolView_28:setReadyVisible(bVisible)
  125. self.ui.Items.Layout_Ready:setVisible(bVisible)
  126. self.ui.Items.Layout_Button:requestDoLayout()
  127. self.ui.Items.Layout_Button:doLayout()
  128. end
  129. function RoomToolView_28:setInviteVisible(bVisible)
  130. self.ui.Items.Layout_Invite:setVisible(bVisible)
  131. self.ui.Items.Layout_Button:requestDoLayout()
  132. self.ui.Items.Layout_Button:doLayout()
  133. self:setInviteClubVisible(bVisible)
  134. end
  135. function RoomToolView_28:setLeaveEnabled(bEnabled)
  136. self.ui.Items.Button_Leave:setEnabled(bEnabled)
  137. end
  138. function RoomToolView_28:setDissmissEnabled(bEnabled)
  139. self.ui.Items.Button_Dissmiss:setEnabled(bEnabled)
  140. end
  141. --设置按钮菜单
  142. function RoomToolView_28:setMenuVisible(bVisible)
  143. self.ui.Items.Layout_Menu:setVisible(bVisible)
  144. -- local spawn
  145. -- if not bVisible then
  146. -- spawn = cc.Spawn:create(cc.MoveTo:create(0.15,self.menuPos),cc.FadeOut:create(0.15))
  147. -- self.ui.Items.Button_Set:runAction(spawn)
  148. -- spawn = cc.Spawn:create(cc.MoveTo:create(0.15,self.menuPos),cc.FadeOut:create(0.15))
  149. -- self.ui.Items.Button_Leave:runAction(spawn)
  150. -- spawn = cc.Spawn:create(cc.MoveTo:create(0.15,self.menuPos),cc.FadeOut:create(0.15))
  151. -- self.ui.Items.Button_Dissmiss:runAction(spawn)
  152. -- spawn = cc.Spawn:create(cc.MoveTo:create(0.15,self.menuPos),cc.FadeOut:create(0.15))
  153. -- self.ui.Items.Button_UpLoad:runAction(cc.Sequence:create(spawn, cc.CallFunc:create(function ()
  154. -- self.ui.Items.Layout_Menu:setVisible(bVisible)
  155. -- end)))
  156. -- else
  157. -- self.ui.Items.Layout_Menu:setVisible(bVisible)
  158. -- spawn = cc.Spawn:create(cc.MoveTo:create(0.15,self.setPos),cc.FadeIn:create(0.15))
  159. -- self.ui.Items.Button_Set:runAction(spawn)
  160. -- spawn = cc.Spawn:create(cc.MoveTo:create(0.15,self.rulePos),cc.FadeIn:create(0.15))
  161. -- self.ui.Items.Button_UpLoad:runAction(spawn)
  162. -- spawn = cc.Spawn:create(cc.MoveTo:create(0.15,self.leavePos),cc.FadeIn:create(0.15))
  163. -- self.ui.Items.Button_Leave:runAction(spawn)
  164. -- spawn = cc.Spawn:create(cc.MoveTo:create(0.15,self.dissmissPos),cc.FadeIn:create(0.15))
  165. -- self.ui.Items.Button_Dissmiss:runAction(spawn)
  166. -- end
  167. -- self.ui.Items.ImageView_MenuBg:setVisible(bVisible)
  168. end
  169. -- 设置界面
  170. function RoomToolView_28:onClickMenu()
  171. playBtnEffect()
  172. self.opentMenu = not self.opentMenu
  173. self:setMenuVisible(self.opentMenu)
  174. end
  175. -- 俱乐部邀请
  176. function RoomToolView_28:onClickInviteClub()
  177. playBtnEffect()
  178. if app.club_php.clubID and app.club_php.clubID ~= 0 then
  179. local roomInfo = app.room.roomInfo
  180. -- local strGameMode = Functions.getRuleStr()
  181. local strGameMode = Functions.getRuleStrByClubInvite()
  182. local view = import("luaScript.Views.Club.ClubInvite"):new(roomInfo.nShowTableId, strGameMode)
  183. view:setAnchorPoint(cc.p(0.5, 0.5))
  184. app:showWaitDialog(view)
  185. end
  186. end
  187. function RoomToolView_28:onClickLeave()
  188. playBtnEffect()
  189. if app.room.roomInfo.tableOverFlag and app.room.roomInfo.tableOverFlag > TABLE_OVER_FLAG.TABLE_OVER_NORMAL then
  190. showTooltip(TABLE_OVER_FLAG_TEXT[app.room.roomInfo.tableOverFlag])
  191. app:gotoView(import("luaScript.Views.Main.MainView"):new(GAME_IDS.LiuZhou))
  192. else
  193. app.room.roomInfo.bQuitRoom = true
  194. self.ui:sendMsg(app.room, "callLeaveRequest")
  195. end
  196. end
  197. function RoomToolView_28:onClickQuickStart()
  198. playBtnEffect()
  199. app.room:requestQuickStart(1)
  200. end
  201. --设置邀请亲友圈成员显示
  202. function RoomToolView_28:setInviteClubVisible(bVisible)
  203. if (not isReviewVersion()) and self.ui.Items.Button_Invite_Club then
  204. if app.club_php.clubID and app.club_php.clubID ~= 0 then
  205. self.ui.Items.Layout_Invite_Club:setVisible(bVisible)
  206. else
  207. self.ui.Items.Layout_Invite_Club:setVisible(false)
  208. end
  209. end
  210. self.ui.Items.Layout_Button:requestDoLayout()
  211. self.ui.Items.Layout_Button:doLayout()
  212. end
  213. function RoomToolView_28:onClickReady()
  214. playBtnEffect()
  215. self.ui:sendMsg(app.room, "callReadyRequest")
  216. self.isTouchCurScene = true
  217. end
  218. ---
  219. -- 切换包间
  220. -- @return
  221. --
  222. function RoomToolView_28:onClickBaojian ()
  223. openClub();
  224. end
  225. ---
  226. -- 检测是否可以解散房间
  227. -- @param
  228. -- @return
  229. --
  230. function RoomToolView_28:checkCanDismiss( )
  231. local onCanDismissCallback = function (info)
  232. local nUserId = app.room:getMyUserId()
  233. local roomInfo = app.room.roomInfo or {}
  234. local canDismiss = (tonumber(info.canDismiss or 1) == 1) or roomInfo.nRoomOwnedUid == nUserId or dd.IClub.isAdmin()
  235. if roomInfo.nGameStartCount == 0 and roomInfo.nRoomOwnedUid ~= nUserId then
  236. canDismiss = false
  237. end
  238. self:onCanDismissCallback(canDismiss)
  239. end
  240. if dd.IClub.getCanDismiss then
  241. local canDismiss = dd.IClub.getCanDismiss(onCanDismissCallback)
  242. if canDismiss then
  243. onCanDismissCallback({canDismiss = canDismiss})
  244. end
  245. end
  246. end
  247. function RoomToolView_28:onCanDismissCallback(canDismiss)
  248. if self.ui.Items.Button_Dissmiss then
  249. self.ui.Items.Button_Dissmiss:setEnabled(canDismiss)
  250. end
  251. end
  252. return RoomToolView_28