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.

383 lines
12 KiB

  1. local CreateRoom = class("CreateRoom_28_1", require("luaScript.Views.CreateRoom.CreateRoomItemBase"))
  2. function CreateRoom:ctor( defaultValues)
  3. CreateRoom.super.ctor(self, defaultValues, "CreateRoom_28_1.json")
  4. local ui = loadUI("res/ui/ui_chuangjian/pk_chuangjian_28_1.ui")
  5. self.ui = ui
  6. self:addChild(ui)
  7. self:initCreateRoomCost();
  8. -- -- 局数
  9. -- self.RadioManager_1 = import("luaScript.Tools.RadioManager"):new()
  10. -- 钻石
  11. self.PayRadioManager = import("luaScript.Tools.RadioManager"):new()
  12. -- 倍数
  13. self.RadioManager_3 = import("luaScript.Tools.RadioManager"):new()
  14. -- 三带
  15. self.CheckBoxManager_6 = import("luaScript.Tools.CheckBoxManager"):new()
  16. -- 四带
  17. self.CheckBoxManager_7 = import("luaScript.Tools.CheckBoxManager"):new()
  18. -- 飘分
  19. self.RadioManager_8 = import("luaScript.Tools.RadioManager"):new()
  20. -- 其它
  21. self.CheckBoxManager_9 = import("luaScript.Tools.CheckBoxManager"):new()
  22. self.otherCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new()
  23. self:onHideCestView() -- 隐藏cest的界面
  24. end
  25. function CreateRoom:onHideCestView()
  26. if self.ui.Items.Button_pay0_tips then
  27. self.ui.Items.Button_pay0_tips:setVisible(false)
  28. end
  29. if self.ui.Items.Button_pay1_tips then
  30. self.ui.Items.Button_pay1_tips:setVisible(false)
  31. end
  32. if self.ui.Items.ImageView_pay0_tips then
  33. self.ui.Items.ImageView_pay0_tips:setVisible(false)
  34. end
  35. if self.ui.Items.ImageView_pay1_tips then
  36. self.ui.Items.ImageView_pay1_tips:setVisible(false)
  37. end
  38. end
  39. function CreateRoom:onShowCestView()
  40. if self.ui.Items.Text_pay0 then
  41. self.ui.Items.Text_pay0:setText("免费")
  42. end
  43. if self.ui.Items.Text_pay1 then
  44. self.ui.Items.Text_pay1:setText("自费")
  45. end
  46. if self.ui.Items.Button_pay0_tips then
  47. self.ui.Items.Button_pay0_tips:setVisible(true)
  48. end
  49. if self.ui.Items.Button_pay1_tips then
  50. self.ui.Items.Button_pay1_tips:setVisible(true)
  51. end
  52. if self.ui.Items.ImageView_pay0_tips then
  53. self.ui.Items.ImageView_pay0_tips:setVisible(false)
  54. end
  55. if self.ui.Items.Button_pay0_tips then
  56. self.ui.Items.Button_pay0_tips:registerClick(function()
  57. if self.ui.Items.ImageView_pay0_tips then
  58. local isVisible = not self.ui.Items.ImageView_pay0_tips:isVisible()
  59. self.ui.Items.ImageView_pay0_tips:setVisible(isVisible)
  60. end
  61. end)
  62. end
  63. if self.ui.Items.ImageView_pay1_tips then
  64. self.ui.Items.ImageView_pay1_tips:setVisible(false)
  65. end
  66. if self.ui.Items.Button_pay1_tips then
  67. self.ui.Items.Button_pay1_tips:registerClick(function()
  68. if self.ui.Items.ImageView_pay1_tips then
  69. local isVisible = not self.ui.Items.ImageView_pay1_tips:isVisible()
  70. self.ui.Items.ImageView_pay1_tips:setVisible(isVisible)
  71. end
  72. end)
  73. end
  74. end
  75. function CreateRoom:onEnter()
  76. CreateRoom.super.onEnter(self)
  77. -- 房费
  78. if self.PayRadioManager then
  79. self.PayRadioManager:addItem(self.ui.Items.CheckBox_2_1, 0) -- 房主支付
  80. self.PayRadioManager:addItem(self.ui.Items.CheckBox_2_2, 1) -- AA支付
  81. local default = self:getDefaultValue("deductRule") or 0
  82. self.PayRadioManager:setDefault(default)
  83. self.PayRadioManager:setCallback(function ()
  84. playBtnEffect()
  85. app:dispatchEvent({name = "onChangePayMode"})
  86. end)
  87. end
  88. -- 倍数
  89. if self.RadioManager_3 then
  90. self.RadioManager_3:addItem(self.ui.Items.CheckBox_3_1, 8) -- 8倍
  91. self.RadioManager_3:addItem(self.ui.Items.CheckBox_3_2, 16) -- 16倍
  92. self.RadioManager_3:addItem(self.ui.Items.CheckBox_3_3, 32) -- 32倍
  93. self.RadioManager_3:addItem(self.ui.Items.CheckBox_3_4, 0) -- 无限制
  94. local default = self:getDefaultValue("multLimit") or 8
  95. self.RadioManager_3:setDefault(default)
  96. self.RadioManager_3:setCallback(function ()
  97. playBtnEffect()
  98. end)
  99. end
  100. -- 三带
  101. if self.CheckBoxManager_6 then
  102. local values = {
  103. [1] = {selectValue = 0x01, unselectValue = 0},
  104. [2] = {selectValue = 0x02, unselectValue = 0},
  105. }
  106. self.CheckBoxManager_6:addItem(self.ui.Items.CheckBox_6_1, values[1].selectValue, values[1].selectValue, values[1].unselectValue)
  107. self.CheckBoxManager_6:addItem(self.ui.Items.CheckBox_6_2, values[2].selectValue, values[2].selectValue, values[2].unselectValue)
  108. -- 设置默认状态
  109. local tValues = {}
  110. local default = self:getDefaultValue("sanDai") or getNumOr(values[1].selectValue, values[2].selectValue)
  111. for k,v in ipairs(values) do
  112. if getNumBand(default, v.selectValue) > 0 then
  113. table.insert(tValues, v.selectValue)
  114. end
  115. end
  116. self.CheckBoxManager_6:setDefault(tValues)
  117. end
  118. -- 四带
  119. if self.CheckBoxManager_7 then
  120. local values = {
  121. [1] = {selectValue = 0x02, unselectValue = 0},
  122. [2] = {selectValue = 0x08, unselectValue = 0},
  123. }
  124. self.CheckBoxManager_7:addItem(self.ui.Items.CheckBox_7_1, values[1].selectValue, values[1].selectValue, values[1].unselectValue)
  125. self.CheckBoxManager_7:addItem(self.ui.Items.CheckBox_7_2, values[2].selectValue, values[2].selectValue, values[2].unselectValue)
  126. -- 设置默认状态
  127. local tValues = {}
  128. local default = self:getDefaultValue("siDai") or getNumOr(values[1].selectValue, values[2].selectValue)
  129. for k,v in ipairs(values) do
  130. if getNumBand(default, v.selectValue) > 0 then
  131. table.insert(tValues, v.selectValue)
  132. end
  133. end
  134. self.CheckBoxManager_7:setDefault(tValues)
  135. end
  136. -- 飘分
  137. if self.RadioManager_8 then
  138. self.RadioManager_8:addItem(self.ui.Items.CheckBox_8_1, 0)
  139. self.RadioManager_8:addItem(self.ui.Items.CheckBox_8_2, 5)
  140. self.RadioManager_8:addItem(self.ui.Items.CheckBox_8_3, 10)
  141. -- 设置默认状态
  142. local default = self:getDefaultValue("piaoType") or 0
  143. self.RadioManager_8:setDefault(default)
  144. self.RadioManager_8:setCallback(function ()
  145. playBtnEffect()
  146. end)
  147. end
  148. -- 其它
  149. if self.CheckBoxManager_9 then
  150. local values = {
  151. [1] = {selectValue = 0x01, unselectValue = 0},
  152. [2] = {selectValue = 0x02, unselectValue = 0},
  153. [3] = {selectValue = 0x04, unselectValue = 0},
  154. [4] = {selectValue = 0x08, unselectValue = 0},
  155. }
  156. self.CheckBoxManager_9:addItem(self.ui.Items.CheckBox_9_1, values[1].selectValue, values[1].selectValue, values[1].unselectValue) -- 屏蔽...
  157. self.CheckBoxManager_9:addItem(self.ui.Items.CheckBox_9_2, values[2].selectValue, values[2].selectValue, values[2].unselectValue) -- 加倍...
  158. self.CheckBoxManager_9:addItem(self.ui.Items.CheckBox_9_3, values[3].selectValue, values[3].selectValue, values[3].unselectValue) -- 剩余...
  159. self.CheckBoxManager_9:addItem(self.ui.Items.CheckBox_9_4, values[4].selectValue, values[4].selectValue, values[4].unselectValue) -- 加倍超时...
  160. self.ui.Items.CheckBox_9_1:setVisible(false)
  161. -- 设置默认状态
  162. local tValues = {}
  163. local default = self:getDefaultValue("extPlay") or values[2].selectValue
  164. for k,v in ipairs(values) do
  165. if getNumBand(default, v.selectValue) > 0 then
  166. table.insert(tValues, v.selectValue)
  167. end
  168. end
  169. self.CheckBoxManager_9:setDefault(tValues)
  170. end
  171. self:initLayoutEvent()
  172. self:initJiFenBeiShu()
  173. self:initOtherCheckBoxManager()
  174. end
  175. function CreateRoom:initOtherCheckBoxManager ()
  176. if not self.otherCheckBoxManager then
  177. return
  178. end
  179. self.otherCheckBoxManager:addItem(self.ui.Items.CheckBox_ForbidProp, "forbidProp", 1, 0)--屏蔽快捷语与道具
  180. self.otherCheckBoxManager:addItem(self.ui.Items.CheckBox_ForbidVoice, "forbidVoice", 1, 0)--屏蔽语音
  181. local forbidProp = self:getDefaultValue("forbidProp") or 0
  182. local forbidVoice = self:getDefaultValue("forbidVoice") or 0
  183. local defaults = {}
  184. if forbidProp > 0 then
  185. table.insert(defaults, "forbidProp")
  186. end
  187. if forbidVoice == 1 then
  188. table.insert(defaults, "forbidVoice")
  189. end
  190. self.otherCheckBoxManager:setDefault(defaults)
  191. end
  192. -- 面板的点击事件,点击面板后,隐藏所有提示
  193. function CreateRoom:initLayoutEvent()
  194. self.ui.Items.Layout_liuzhou:registerClick(function()
  195. local buttons = {
  196. {buttonName = "Button_JFBS", tipsName = "ImageView_JFBS"},
  197. };
  198. -- 隐藏其他提示信息
  199. for k, v in ipairs(buttons) do
  200. local tipsNode = self.ui.Items[v.tipsName]
  201. tipsNode:setVisible(false)
  202. end
  203. end)
  204. end
  205. function CreateRoom:initCreateRoomCost ()
  206. -- 整理不同局数对应的房卡消耗
  207. local payTypes={}
  208. local gameConfig = app.user:getGameConfig(GAME_IDS.DouDiZhu)--app.gameId);
  209. if gameConfig then
  210. local arrGameRound = toNumberArray(",")(gameConfig.gameRound)
  211. local arrRequireCards = toNumberArray(",")(gameConfig.requireCards)
  212. local arrRequireCardsAA = toNumberArray(",")(gameConfig.AArequireCards)
  213. for idx, gameRound in ipairs(arrGameRound) do
  214. payTypes[gameRound] =
  215. {
  216. roomCard = arrRequireCards[idx],
  217. roomCardAA = arrRequireCardsAA[idx],
  218. }
  219. end
  220. end
  221. self.cost = payTypes
  222. end
  223. function CreateRoom:getCreateRoomCost (jushu)
  224. if self.cost then
  225. local costInfo = self.cost[jushu]
  226. if costInfo then
  227. local payMode = self.PayRadioManager:getResult()
  228. if payMode == 0 then
  229. return costInfo.roomCard or 0
  230. elseif payMode == 1 then
  231. return costInfo.roomCardAA or 0
  232. end
  233. end
  234. end
  235. return 0
  236. end
  237. -- 初始化积分倍数
  238. function CreateRoom:initJiFenBeiShu()
  239. self.ui.Items.Button_jia:registerClick(handler(self, self.onClickAdd))
  240. self.ui.Items.Button_jian:registerClick(handler(self, self.onClickJian))
  241. self.curJFBS = self:getDefaultValue("baseMulti") or 1;
  242. self:updateJiFenBeiShu()
  243. --积分倍数说明
  244. self.ui.Items.ImageView_JFBS:setVisible(false)
  245. self.ui.Items.Button_JFBS:registerClick(function()
  246. self.ui.Items.ImageView_JFBS:setVisible(not self.ui.Items.ImageView_JFBS:isVisible())
  247. end)
  248. -- self.ui.Items.Layout_JiFenBeiShu:setVisible(false)
  249. end
  250. --更新积分倍数
  251. function CreateRoom:updateJiFenBeiShu()
  252. self.curJFBS = self.curJFBS >= 1.0 and math.floor(self.curJFBS) or self.curJFBS;
  253. self.ui.Items.Text_jifen:setText(self.curJFBS)
  254. self.ui.Items.Button_jia:setEnabled(self.curJFBS ~= 100)
  255. self.ui.Items.Button_jian:setEnabled(self.curJFBS ~= 0.1)
  256. end
  257. --按钮加
  258. function CreateRoom:onClickAdd()
  259. playBtnEffect()
  260. if not self.curJFBS then
  261. return
  262. end
  263. if self.curJFBS >= 1.0 then
  264. self.curJFBS = self.curJFBS + 1.0
  265. else
  266. self.curJFBS = self.curJFBS + 0.1
  267. end
  268. if self.curJFBS >= 100 then
  269. self.curJFBS = 100;
  270. end
  271. self:updateJiFenBeiShu()
  272. end
  273. --按钮减
  274. function CreateRoom:onClickJian()
  275. playBtnEffect()
  276. if not self.curJFBS then
  277. return
  278. end
  279. if self.curJFBS <= 1.0 then
  280. self.curJFBS = self.curJFBS - 0.1
  281. else
  282. self.curJFBS = self.curJFBS - 1.0
  283. end
  284. if self.curJFBS <= 0.1 then
  285. self.curJFBS = 0.1
  286. end
  287. self:updateJiFenBeiShu()
  288. end
  289. function CreateRoom:getRuleResult()
  290. -- -- 局数
  291. -- local juShu = self.RadioManager_1:getResult()
  292. -- 钻石
  293. local deductRule = self.PayRadioManager:getResult()
  294. -- 倍数
  295. local multLimit = self.RadioManager_3:getResult()
  296. -- 三带
  297. local sanDaiList = self.CheckBoxManager_6:getResult()
  298. local sanDai = 0
  299. for _,v in pairs(sanDaiList) do
  300. sanDai = getNumOr(sanDai, v.value)
  301. end
  302. -- 四带
  303. local siDaiList = self.CheckBoxManager_7:getResult()
  304. local siDai = 0
  305. for _,v in pairs(siDaiList) do
  306. siDai = getNumOr(siDai, v.value)
  307. end
  308. -- 飘分
  309. local piaoType = self.RadioManager_8:getResult()
  310. -- 其它
  311. local extPlayList = self.CheckBoxManager_9:getResult()
  312. local extPlay = 0
  313. for _,v in pairs(extPlayList) do
  314. extPlay = getNumOr(extPlay, v.value)
  315. end
  316. extPlayList = self.CheckBoxManager_9:getResult2()
  317. -- local forbidProp = extPlayList[1]
  318. local other = self.otherCheckBoxManager:getResult2()
  319. local forbidProp = other["forbidProp"]
  320. local forbidVoice = other["forbidVoice"]
  321. self.defaultValus =
  322. {
  323. gameid = self.gameid,
  324. gamerule = 1,
  325. game_num = juShu,
  326. deductRule= deductRule,
  327. multLimit = multLimit,
  328. lordType = 0,
  329. nobLord = 0,
  330. sanDai = sanDai,
  331. siDai = siDai,
  332. extPlay = extPlay,
  333. piaoType = piaoType,
  334. baseMulti = self.curJFBS,
  335. forbidProp = forbidProp,
  336. forbidVoice = forbidVoice,
  337. }
  338. -- 保存玩家的选择
  339. self:saveDefaultValues()
  340. local strGameInfo = json.encode(self.defaultValus)
  341. return juShu, strGameInfo
  342. end
  343. return CreateRoom