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.

327 rivejä
9.7 KiB

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