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.

347 line
11 KiB

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