Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

426 wiersze
13 KiB

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