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.

431 lines
14 KiB

  1. local CreateRoom_BZP = class("CreateRoom_BZP", require("luaScript.Views.CreateRoom.CreateRoomItemBase"))
  2. --[[
  3. isCreateRoom和defaultValus决定了从哪里读取默认值
  4. isCreateRoom 为true时,从本地文件读取,defaultValus无效.
  5. 否则使用defaultValus的值
  6. defaultValus : 跟服务器strGameInfo对应的json对象
  7. --]]
  8. function CreateRoom_BZP:ctor(defaultValus)
  9. CreateRoom_BZP.super.ctor(self, defaultValus, "CreateRoom_BZP.json")
  10. local ui = loadUI("res/ui/ui_chuangjian/pk_chuanjian_bzp.ui")
  11. self.ui = ui
  12. self:addChild(ui)
  13. local gameConfig = getSubGameConfig(GAME_IDS.BanZiPao)
  14. self.curPlayType = 0
  15. -- 付费方式
  16. self.payRadioManager = import("luaScript.Tools.RadioManager"):new()
  17. -- 人数 - 单选
  18. self.renShuRadioManager = import("luaScript.Tools.RadioManager"):new()
  19. -- 玩法 - 单选
  20. self.diFenRadioManager = import("luaScript.Tools.RadioManager"):new()
  21. self.JiaoPaiRadioManager = import("luaScript.Tools.RadioManager"):new();
  22. self.fanbaoCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new()
  23. self.baopaiCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new()
  24. self.geziweizhanCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new()
  25. self.buxipaiCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new()
  26. self.boomCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new()
  27. self.daiHuaPaiCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new()
  28. self.showLeftCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new()
  29. self.jinChatCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new()
  30. -- 其他选项
  31. self.otherCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new()
  32. self.gameId = GAME_IDS.BanZiPao
  33. self:initRadio()
  34. self:onHideCestView() -- 隐藏cest的界面
  35. end
  36. function CreateRoom_BZP:onHideCestView()
  37. if self.ui.Items.Button_pay0_tips then
  38. self.ui.Items.Button_pay0_tips:setVisible(false)
  39. end
  40. if self.ui.Items.Button_pay1_tips then
  41. self.ui.Items.Button_pay1_tips:setVisible(false)
  42. end
  43. if self.ui.Items.ImageView_pay0_tips then
  44. self.ui.Items.ImageView_pay0_tips:setVisible(false)
  45. end
  46. if self.ui.Items.ImageView_pay1_tips then
  47. self.ui.Items.ImageView_pay1_tips:setVisible(false)
  48. end
  49. end
  50. function CreateRoom_BZP:onShowCestView()
  51. if self.ui.Items.Text_pay0 then
  52. self.ui.Items.Text_pay0:setText("免费")
  53. end
  54. if self.ui.Items.Text_pay1 then
  55. self.ui.Items.Text_pay1:setText("自费")
  56. end
  57. if self.ui.Items.Button_pay0_tips then
  58. self.ui.Items.Button_pay0_tips:setVisible(true)
  59. end
  60. if self.ui.Items.Button_pay1_tips then
  61. self.ui.Items.Button_pay1_tips:setVisible(true)
  62. end
  63. if self.ui.Items.ImageView_pay0_tips then
  64. self.ui.Items.ImageView_pay0_tips:setVisible(false)
  65. end
  66. if self.ui.Items.Button_pay0_tips then
  67. self.ui.Items.Button_pay0_tips:registerClick(function()
  68. if self.ui.Items.ImageView_pay0_tips then
  69. local isVisible = not self.ui.Items.ImageView_pay0_tips:isVisible()
  70. self.ui.Items.ImageView_pay0_tips:setVisible(isVisible)
  71. end
  72. end)
  73. end
  74. if self.ui.Items.ImageView_pay1_tips then
  75. self.ui.Items.ImageView_pay1_tips:setVisible(false)
  76. end
  77. if self.ui.Items.Button_pay1_tips then
  78. self.ui.Items.Button_pay1_tips:registerClick(function()
  79. if self.ui.Items.ImageView_pay1_tips then
  80. local isVisible = not self.ui.Items.ImageView_pay1_tips:isVisible()
  81. self.ui.Items.ImageView_pay1_tips:setVisible(isVisible)
  82. end
  83. end)
  84. end
  85. end
  86. --根据局数获取房费
  87. function CreateRoom_BZP:getCreateRoomCost(jushu)
  88. if self.cost then
  89. local costInfo = self.cost[jushu]
  90. if costInfo then
  91. local payMode = self.payRadioManager:getResult()
  92. if payMode == 0 then
  93. return costInfo.requireCards or 0
  94. elseif payMode == 1 then
  95. return costInfo.requireCardsAA or 0
  96. end
  97. end
  98. end
  99. return 0
  100. end
  101. function CreateRoom_BZP:initRadio()
  102. -- 整理不同局数对应的房卡消耗
  103. local ttCost = {}
  104. local gameConfig = app.user:getGameConfig(self.gameId);
  105. if gameConfig then
  106. local arrGameRound = toNumberArray(",")(gameConfig.gameRound)
  107. local arrRequireCards = toNumberArray(",")(gameConfig.requireCards)
  108. local arrRequireCardsAA = toNumberArray(",")(gameConfig.AArequireCards)
  109. for idx, gameRound in ipairs(arrGameRound) do
  110. ttCost[gameRound] =
  111. {
  112. requireCards = arrRequireCards[idx],
  113. requireCardsAA = arrRequireCardsAA[idx],
  114. }
  115. end
  116. end
  117. self.cost = ttCost
  118. --房费
  119. if self.payRadioManager then
  120. self.payRadioManager:addItem(self.ui.Items.CheckBox_FangZhu, 0)
  121. self.payRadioManager:addItem(self.ui.Items.CheckBox_AAPay, 1)
  122. --初始化默认数据
  123. local default = self:getDefaultValue("deductRule") or 0
  124. self.payRadioManager:setColorSwitch(true)
  125. self.payRadioManager:setDefault(default)
  126. --通知创建界面更新显示
  127. local function dispatchUpdateCost()
  128. app:dispatchEvent({name = "onChangePayMode"})
  129. end
  130. self.payRadioManager:setCallback(dispatchUpdateCost)
  131. end
  132. --人数
  133. if self.renShuRadioManager then
  134. self.renShuRadioManager:addItem(self.ui.Items.CheckBox_playerCount_1, 2)
  135. self.renShuRadioManager:addItem(self.ui.Items.CheckBox_playerCount_2, 3)
  136. self.renShuRadioManager:addItem(self.ui.Items.CheckBox_playerCount_3, 4)
  137. self.renShuRadioManager:addItem(self.ui.Items.CheckBox_playerCount_4, 5)
  138. local defaultValue = self:getDefaultValue("playerNum") or 5
  139. self.renShuRadioManager:setColorSwitch(true)
  140. self.renShuRadioManager:setDefault(defaultValue)
  141. self.renShuRadioManager:setCallback(function ()
  142. playBtnEffect()
  143. end)
  144. self.ui.Items.ImageView_zhaniao_1:setVisible(false)
  145. self.ui.Items.Button_zhaniao_1:registerClick(function ()
  146. playBtnEffect()
  147. self.ui.Items.ImageView_zhaniao_1:setVisible(not self.ui.Items.ImageView_zhaniao_1:isVisible())
  148. end)
  149. end
  150. if self.diFenRadioManager then
  151. self.diFenRadioManager:addItem(self.ui.Items.CheckBox_playerCount_5, 1)
  152. self.diFenRadioManager:addItem(self.ui.Items.CheckBox_playerCount_6, 2)
  153. self.diFenRadioManager:addItem(self.ui.Items.CheckBox_playerCount_7, 5)
  154. self.diFenRadioManager:addItem(self.ui.Items.CheckBox_playerCount_8, 10)
  155. self.diFenRadioManager:addItem(self.ui.Items.CheckBox_playerCount_9, 20)
  156. local defaultValue = self:getDefaultValue("baseScore") or 1
  157. self.diFenRadioManager:setColorSwitch(true)
  158. self.diFenRadioManager:setDefault(defaultValue)
  159. self.diFenRadioManager:setCallback(function ()
  160. playBtnEffect()
  161. end)
  162. end
  163. if self.JiaoPaiRadioManager then
  164. self.JiaoPaiRadioManager:addItem(self.ui.Items.CheckBox_FangZhu_1, 1)
  165. self.JiaoPaiRadioManager:addItem(self.ui.Items.CheckBox_AAPay_1, 2)
  166. local defaultValue = self:getDefaultValue("jiaoPaiType") or 1
  167. self.JiaoPaiRadioManager:setColorSwitch(true)
  168. self.JiaoPaiRadioManager:setDefault(defaultValue)
  169. self.JiaoPaiRadioManager:setCallback(function ()
  170. playBtnEffect()
  171. end)
  172. self.ui.Items.ImageView_zhaniao_2:setVisible(false)
  173. self.ui.Items.ImageView_zhaniao_3:setVisible(false)
  174. self.ui.Items.Button_zhaniao_2:registerClick(function ()
  175. playBtnEffect()
  176. self.ui.Items.ImageView_zhaniao_2:setVisible(not self.ui.Items.ImageView_zhaniao_2:isVisible())
  177. end)
  178. self.ui.Items.Button_zhaniao_3:registerClick(function ()
  179. playBtnEffect()
  180. self.ui.Items.ImageView_zhaniao_3:setVisible(not self.ui.Items.ImageView_zhaniao_3:isVisible())
  181. end)
  182. end
  183. self.ui.Items.Layout:registerClick(function ()
  184. if self.ui.Items.ImageView_zhaniao_1:isVisible() or self.ui.Items.ImageView_zhaniao_2:isVisible() or self.ui.Items.ImageView_zhaniao_3:isVisible() then
  185. playBtnEffect()
  186. end
  187. self.ui.Items.ImageView_zhaniao_1:setVisible(false)
  188. self.ui.Items.ImageView_zhaniao_2:setVisible(false)
  189. self.ui.Items.ImageView_zhaniao_3:setVisible(false)
  190. end)
  191. if self.fanbaoCheckBoxManager then
  192. self.fanbaoCheckBoxManager:addItem(self.ui.Items.CheckBox_type_1, 1,1,0);
  193. -- 设置默认状态
  194. local tValues = {}
  195. local default = self:getDefaultValue("fanBao") or 1
  196. table.insert(tValues, default)
  197. self.fanbaoCheckBoxManager:setDefault(tValues)
  198. end
  199. if self.baopaiCheckBoxManager then
  200. self.baopaiCheckBoxManager:addItem(self.ui.Items.CheckBox_type_2, 1,1,0);
  201. -- 设置默认状态
  202. local tValues = {}
  203. local default = self:getDefaultValue("firstBao") or 1
  204. table.insert(tValues, default)
  205. self.baopaiCheckBoxManager:setDefault(tValues)
  206. end
  207. if self.geziweizhanCheckBoxManager then
  208. self.geziweizhanCheckBoxManager:addItem(self.ui.Items.CheckBox_type_3, 1,1,0);
  209. -- 设置默认状态
  210. local tValues = {}
  211. local default = self:getDefaultValue("fightAlone") or 0
  212. table.insert(tValues, default)
  213. self.geziweizhanCheckBoxManager:setDefault(tValues)
  214. end
  215. if self.buxipaiCheckBoxManager then
  216. self.buxipaiCheckBoxManager:addItem(self.ui.Items.CheckBox_type_6, 1,1,0);
  217. -- 设置默认状态
  218. local tValues = {}
  219. local default = self:getDefaultValue("unshuffle") or 0
  220. table.insert(tValues, default)
  221. self.buxipaiCheckBoxManager:setDefault(tValues)
  222. end
  223. if self.boomCheckBoxManager then
  224. self.boomCheckBoxManager:addItem(self.ui.Items.CheckBox_type_7, 1,1,0);
  225. -- 设置默认状态
  226. local tValues = {}
  227. local default = self:getDefaultValue("bombScore") or 0
  228. table.insert(tValues, default)
  229. self.boomCheckBoxManager:setDefault(tValues)
  230. end
  231. if self.daiHuaPaiCheckBoxManager then
  232. self.daiHuaPaiCheckBoxManager:addItem(self.ui.Items.CheckBox_type_8, 1,1,0);
  233. -- 设置默认状态
  234. local tValues = {}
  235. local default = self:getDefaultValue("withFlower") or 0
  236. table.insert(tValues, default)
  237. self.daiHuaPaiCheckBoxManager:setDefault(tValues)
  238. end
  239. if self.showLeftCheckBoxManager then
  240. self.showLeftCheckBoxManager:addItem(self.ui.Items.CheckBox_type_9, 1,1,0);
  241. -- 设置默认状态
  242. local tValues = {}
  243. local default = self:getDefaultValue("reNumShow") or 1
  244. table.insert(tValues, default)
  245. self.showLeftCheckBoxManager:setDefault(tValues)
  246. end
  247. if self.jinChatCheckBoxManager then
  248. self.jinChatCheckBoxManager:addItem(self.ui.Items.CheckBox_type_10, 1,1,0);
  249. -- 设置默认状态
  250. local tValues = {}
  251. local default = self:getDefaultValue("jzdybq") or 0
  252. table.insert(tValues, default)
  253. self.jinChatCheckBoxManager:setDefault(tValues)
  254. self.ui.Items.CheckBox_type_10:setVisible(false)
  255. end
  256. self:initOtherCheckBoxManager()
  257. self:initJiFenBeiShu()
  258. end
  259. ---
  260. -- 初始化其他选项
  261. -- @return
  262. --
  263. function CreateRoom_BZP:initOtherCheckBoxManager ()
  264. if not self.otherCheckBoxManager then
  265. return
  266. end
  267. -- self.otherCheckBoxManager:addItem(self.ui.Items.CheckBox_ForbidProp, "forbidProp", 1, 0)
  268. -- local forbidProp = self:getDefaultValue("forbidProp") or 0
  269. -- local defaults = {}
  270. -- if forbidProp > 0 then
  271. -- table.insert(defaults, "forbidProp")
  272. -- end
  273. -- self.otherCheckBoxManager:setDefault(defaults)
  274. self.otherCheckBoxManager:addItem(self.ui.Items.CheckBox_ForbidProp, "forbidProp", 1, 0)--屏蔽快捷语与道具
  275. self.otherCheckBoxManager:addItem(self.ui.Items.CheckBox_ForbidVoice, "forbidVoice", 1, 0)--屏蔽语音
  276. local forbidProp = self:getDefaultValue("forbidProp") or 0
  277. local forbidVoice = self:getDefaultValue("forbidVoice") or 0
  278. local defaults = {}
  279. if forbidProp > 0 then
  280. table.insert(defaults, "forbidProp")
  281. end
  282. if forbidVoice == 1 then
  283. table.insert(defaults, "forbidVoice")
  284. end
  285. self.otherCheckBoxManager:setDefault(defaults)
  286. end
  287. -- 初始化积分倍数
  288. function CreateRoom_BZP:initJiFenBeiShu()
  289. self.ui.Items.Button_jia:registerClick(handler(self, self.onClickAdd))
  290. self.ui.Items.Button_jian:registerClick(handler(self, self.onClickJian))
  291. self.curJFBS = self:getDefaultValue("baseMulti") or 1;
  292. self:updateJiFenBeiShu()
  293. --积分倍数说明
  294. self.ui.Items.ImageView_JFBS:setVisible(false)
  295. self.ui.Items.Button_JFBS:registerClick(function()
  296. self.ui.Items.ImageView_JFBS:setVisible(not self.ui.Items.ImageView_JFBS:isVisible())
  297. end)
  298. end
  299. --更新积分倍数
  300. function CreateRoom_BZP:updateJiFenBeiShu()
  301. self.curJFBS = self.curJFBS >= 1.0 and math.floor(self.curJFBS) or self.curJFBS;
  302. self.ui.Items.Text_jifen:setText(self.curJFBS)
  303. self.ui.Items.Button_jia:setEnabled(self.curJFBS ~= 100)
  304. self.ui.Items.Button_jian:setEnabled(self.curJFBS ~= 0.1)
  305. end
  306. --按钮加
  307. function CreateRoom_BZP:onClickAdd()
  308. playBtnEffect()
  309. if not self.curJFBS then
  310. return
  311. end
  312. if self.curJFBS >= 1.0 then
  313. self.curJFBS = self.curJFBS + 1.0
  314. else
  315. self.curJFBS = self.curJFBS + 0.1
  316. end
  317. if self.curJFBS >= 100 then
  318. self.curJFBS = 100;
  319. end
  320. self:updateJiFenBeiShu()
  321. end
  322. --按钮减
  323. function CreateRoom_BZP:onClickJian()
  324. playBtnEffect()
  325. if not self.curJFBS then
  326. return
  327. end
  328. if self.curJFBS <= 1.0 then
  329. self.curJFBS = self.curJFBS - 0.1
  330. else
  331. self.curJFBS = self.curJFBS - 1.0
  332. end
  333. if self.curJFBS <= 0.1 then
  334. self.curJFBS = 0.1
  335. end
  336. self:updateJiFenBeiShu()
  337. end
  338. function CreateRoom_BZP:getRuleResult()
  339. local result = {}
  340. result.gameid = self.gameId
  341. result.gamerule = 0
  342. result.enterFlag = 0;--游戏中是否可以中途进入,不允许,传0就可以了
  343. result.game_num = 0--局数
  344. result.deductRule = self.payRadioManager:getResult()--房费0房主1aa
  345. result.playerNum = self.renShuRadioManager:getResult()--玩家人数
  346. result.playnum = result.playerNum == 5 and 4 or result.playerNum
  347. result.baseScore = self.diFenRadioManager:getResult()
  348. result.jiaoPaiType = self.JiaoPaiRadioManager:getResult()
  349. result.fanBao = self.fanbaoCheckBoxManager:getResult()[1].value
  350. result.withFlower = self.daiHuaPaiCheckBoxManager:getResult()[1].value
  351. result.firstBao = self.baopaiCheckBoxManager:getResult()[1].value
  352. result.fightAlone = self.geziweizhanCheckBoxManager:getResult()[1].value
  353. result.unshuffle = self.buxipaiCheckBoxManager:getResult()[1].value
  354. result.bombScore = self.boomCheckBoxManager:getResult()[1].value
  355. result.reNumShow = self.showLeftCheckBoxManager:getResult()[1].value
  356. result.jzdybq = self.jinChatCheckBoxManager:getResult()[1].value
  357. result.baseMulti = self.curJFBS
  358. local other = self.otherCheckBoxManager:getResult2()
  359. local forbidProp = other["forbidProp"]
  360. local forbidVoice = other["forbidVoice"]
  361. result.forbidProp = forbidProp
  362. result.forbidVoice = forbidVoice
  363. self.defaultValus = result
  364. -- 保存玩家的选择
  365. self:saveDefaultValues()
  366. local strGameInfo = json.encode(self.defaultValus);
  367. return result.game_num, strGameInfo
  368. end
  369. function CreateRoom_BZP:onEnter()
  370. CreateRoom_BZP.super.onEnter(self)
  371. -- 整理不同局数对应的房卡消耗
  372. end
  373. return CreateRoom_BZP