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.

361 wiersze
11 KiB

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