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.

352 wiersze
10 KiB

  1. local CreateRoom = class("CreateRoom_53_1", require("luaScript.Views.CreateRoom.CreateRoomItemBase"))
  2. function CreateRoom:ctor( defaultValues)
  3. CreateRoom.super.ctor(self, defaultValues, "CreateRoom_53_1.json")
  4. print('当前游戏id', self.gameid)
  5. local ui = loadUI("res/ui/ui_chuangjian/pk_chuangjian_53_1.ui")
  6. self.ui = ui
  7. self:addChild(ui)
  8. self:initCreateRoomCost();
  9. -- 局数
  10. self.RoundManager = import("luaScript.Tools.RadioManager"):new()
  11. -- 钻石
  12. self.RadioManager_1 = import("luaScript.Tools.RadioManager"):new()
  13. -- 封顶
  14. self.RadioManager_2 = import("luaScript.Tools.RadioManager"):new()
  15. -- 漂分
  16. self.RadioManager_3 = import("luaScript.Tools.RadioManager"):new()
  17. -- 算番
  18. self.RadioManager_4 = import("luaScript.Tools.RadioManager"):new()
  19. -- 玩法
  20. self.CheckBoxManager_5 = import("luaScript.Tools.CheckBoxManager"):new()
  21. -- 其他选项
  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.RadioManager_1 then
  79. self.RadioManager_1:addItem(self.ui.Items.CheckBox_1_1, 0) -- 房主支付
  80. self.RadioManager_1:addItem(self.ui.Items.CheckBox_1_2, 1) -- AA支付
  81. local default = self:getDefaultValue("deductRule") or 0
  82. self.RadioManager_1:setDefault(default)
  83. self.RadioManager_1:setCallback(function ()
  84. playBtnEffect()
  85. app:dispatchEvent({name = "onChangePayMode"})
  86. end)
  87. end
  88. -- 封顶
  89. if self.RadioManager_2 then
  90. self.RadioManager_2:addItem(self.ui.Items.CheckBox_2_1, 3) -- 3番
  91. self.RadioManager_2:addItem(self.ui.Items.CheckBox_2_2, 4) -- 4番
  92. self.RadioManager_2:addItem(self.ui.Items.CheckBox_2_3, 0) -- 3+1
  93. local default = self:getDefaultValue("multLimit") or 2
  94. self.RadioManager_2:setDefault(default)
  95. self.RadioManager_2:setCallback(function ()
  96. playBtnEffect()
  97. end)
  98. end
  99. -- 漂分
  100. if self.RadioManager_3 then
  101. self.RadioManager_3:addItem(self.ui.Items.CheckBox_3_1, 1)
  102. self.RadioManager_3:addItem(self.ui.Items.CheckBox_3_2, 2)
  103. self.RadioManager_3:addItem(self.ui.Items.CheckBox_3_3, 0)
  104. -- 设置默认状态
  105. local default = self:getDefaultValue("piaoType") or 1
  106. self.RadioManager_3:setDefault(default)
  107. self.RadioManager_3:setCallback(function ()
  108. playBtnEffect()
  109. end)
  110. end
  111. -- 算番
  112. if self.RadioManager_4 then
  113. self.RadioManager_4:addItem(self.ui.Items.CheckBox_4_1, 1)
  114. self.RadioManager_4:addItem(self.ui.Items.CheckBox_4_2, 2)
  115. -- 设置默认状态
  116. local default = self:getDefaultValue("calcFan") or 2
  117. self.RadioManager_4:setDefault(default)
  118. self.RadioManager_4:setCallback(function ()
  119. playBtnEffect()
  120. end)
  121. end
  122. -- 玩法
  123. if self.CheckBoxManager_5 then
  124. local values = {
  125. [1] = {selectValue = 0x01, unselectValue = 0},
  126. [2] = {selectValue = 0x02, unselectValue = 0},
  127. [3] = {selectValue = 0x04, unselectValue = 0},
  128. [4] = {selectValue = 0x08, unselectValue = 0},
  129. }
  130. self.CheckBoxManager_5:addItem(self.ui.Items.CheckBox_5_1, values[1].selectValue, values[1].selectValue, values[1].unselectValue)
  131. self.CheckBoxManager_5:addItem(self.ui.Items.CheckBox_5_2, values[2].selectValue, values[2].selectValue, values[2].unselectValue)
  132. self.CheckBoxManager_5:addItem(self.ui.Items.CheckBox_5_3, values[3].selectValue, values[3].selectValue, values[3].unselectValue)
  133. self.CheckBoxManager_5:addItem(self.ui.Items.CheckBox_5_4, values[4].selectValue, values[4].selectValue, values[4].unselectValue)
  134. -- 设置默认状态
  135. local tValues = {}
  136. local default = self:getDefaultValue("playRule") or values[2].selectValue
  137. for k,v in ipairs(values) do
  138. if getNumBand(default, v.selectValue) > 0 then
  139. table.insert(tValues, v.selectValue)
  140. end
  141. end
  142. self.CheckBoxManager_5:setDefault(tValues)
  143. end
  144. self.ui.Items.Layout_6:setVisible(false)
  145. self:initOtherCheckBoxManager()
  146. self:initLayoutEvent()
  147. self:initJiFenBeiShu()
  148. end
  149. ---
  150. -- 初始化其他选项
  151. -- @return
  152. --
  153. function CreateRoom:initOtherCheckBoxManager ()
  154. if not self.otherCheckBoxManager then
  155. return
  156. end
  157. -- self.otherCheckBoxManager:addItem(self.ui.Items.CheckBox_ForbidProp, "forbidProp", 1, 0)
  158. -- local forbidProp = self:getDefaultValue("forbidProp") or 0
  159. -- local defaults = {}
  160. -- if forbidProp > 0 then
  161. -- table.insert(defaults, "forbidProp")
  162. -- end
  163. -- self.otherCheckBoxManager:setDefault(defaults)
  164. self.otherCheckBoxManager:addItem(self.ui.Items.CheckBox_ForbidProp, "forbidProp", 1, 0)--屏蔽快捷语与道具
  165. self.otherCheckBoxManager:addItem(self.ui.Items.CheckBox_ForbidVoice, "forbidVoice", 1, 0)--屏蔽语音
  166. local forbidProp = self:getDefaultValue("forbidProp") or 0
  167. local forbidVoice = self:getDefaultValue("forbidVoice") or 0
  168. local defaults = {}
  169. if forbidProp > 0 then
  170. table.insert(defaults, "forbidProp")
  171. end
  172. if forbidVoice == 1 then
  173. table.insert(defaults, "forbidVoice")
  174. end
  175. self.otherCheckBoxManager:setDefault(defaults)
  176. end
  177. -- 面板的点击事件,点击面板后,隐藏所有提示
  178. function CreateRoom:initLayoutEvent()
  179. self.ui.Items.Layout_liuzhou:registerClick(function()
  180. local buttons = {
  181. {buttonName = "Button_JFBS", tipsName = "ImageView_JFBS"},
  182. };
  183. -- 隐藏其他提示信息
  184. for k, v in ipairs(buttons) do
  185. local tipsNode = self.ui.Items[v.tipsName]
  186. tipsNode:setVisible(false)
  187. end
  188. end)
  189. end
  190. -- 初始化积分倍数
  191. function CreateRoom:initJiFenBeiShu()
  192. self.ui.Items.Button_jia:registerClick(handler(self, self.onClickAdd))
  193. self.ui.Items.Button_jian:registerClick(handler(self, self.onClickJian))
  194. self.curJFBS = self:getDefaultValue("baseMulti") or 1;
  195. self:updateJiFenBeiShu()
  196. --积分倍数说明
  197. self.ui.Items.ImageView_JFBS:setVisible(false)
  198. self.ui.Items.Button_JFBS:registerClick(function()
  199. self.ui.Items.ImageView_JFBS:setVisible(not self.ui.Items.ImageView_JFBS:isVisible())
  200. end)
  201. end
  202. --更新积分倍数
  203. function CreateRoom:updateJiFenBeiShu()
  204. self.curJFBS = self.curJFBS >= 1.0 and math.floor(self.curJFBS) or self.curJFBS;
  205. self.ui.Items.Text_jifen:setText(self.curJFBS)
  206. self.ui.Items.Button_jia:setEnabled(self.curJFBS ~= 100)
  207. self.ui.Items.Button_jian:setEnabled(self.curJFBS ~= 0.1)
  208. end
  209. --按钮加
  210. function CreateRoom:onClickAdd()
  211. playBtnEffect()
  212. if not self.curJFBS then
  213. return
  214. end
  215. if self.curJFBS >= 1.0 then
  216. self.curJFBS = self.curJFBS + 1.0
  217. else
  218. self.curJFBS = self.curJFBS + 0.1
  219. end
  220. if self.curJFBS >= 100 then
  221. self.curJFBS = 100;
  222. end
  223. self:updateJiFenBeiShu()
  224. end
  225. --按钮减
  226. function CreateRoom:onClickJian()
  227. playBtnEffect()
  228. if not self.curJFBS then
  229. return
  230. end
  231. if self.curJFBS <= 1.0 then
  232. self.curJFBS = self.curJFBS - 0.1
  233. else
  234. self.curJFBS = self.curJFBS - 1.0
  235. end
  236. if self.curJFBS <= 0.1 then
  237. self.curJFBS = 0.1
  238. end
  239. self:updateJiFenBeiShu()
  240. end
  241. function CreateRoom:initCreateRoomCost ()
  242. -- 整理不同局数对应的房卡消耗
  243. local payTypes={}
  244. local gameConfig = app.user:getGameConfig(GAME_IDS.NanChongDouDiZhu)--app.gameId);
  245. if gameConfig then
  246. local arrGameRound = toNumberArray(",")(gameConfig.gameRound)
  247. local arrRequireCards = toNumberArray(",")(gameConfig.requireCards)
  248. local arrRequireCardsAA = toNumberArray(",")(gameConfig.AArequireCards)
  249. for idx, gameRound in ipairs(arrGameRound) do
  250. payTypes[gameRound] =
  251. {
  252. roomCard = arrRequireCards[idx],
  253. roomCardAA = arrRequireCardsAA[idx],
  254. }
  255. end
  256. end
  257. self.cost = payTypes
  258. end
  259. function CreateRoom:getCreateRoomCost (jushu)
  260. if self.cost then
  261. local costInfo = self.cost[jushu]
  262. if costInfo then
  263. local payMode = self.RadioManager_1:getResult()
  264. if payMode == 0 then
  265. return costInfo.roomCard or 0
  266. elseif payMode == 1 then
  267. return costInfo.roomCardAA or 0
  268. end
  269. end
  270. end
  271. return 0
  272. end
  273. function CreateRoom:getRuleResult()
  274. -- 局数
  275. local juShu = self.RoundManager:getResult()
  276. -- 钻石
  277. local deductRule = self.RadioManager_1:getResult()
  278. -- 封顶
  279. local multLimit = self.RadioManager_2:getResult()
  280. -- 飘分
  281. local piaoType = self.RadioManager_3:getResult()
  282. -- 算番
  283. local calcFan = self.RadioManager_4:getResult()
  284. -- 其它
  285. local extPlayList = self.CheckBoxManager_5:getResult()
  286. local playRule = 0
  287. for _,v in pairs(extPlayList) do
  288. playRule = getNumOr(playRule, v.value)
  289. end
  290. local other = self.otherCheckBoxManager:getResult2()
  291. local forbidProp = other["forbidProp"]
  292. local forbidVoice = other["forbidVoice"]
  293. self.defaultValus =
  294. {
  295. gameid = self.gameid,
  296. gamerule = 1,
  297. game_num = juShu,
  298. deductRule= deductRule,
  299. multLimit = multLimit,
  300. piaoType = piaoType,
  301. calcFan = calcFan,
  302. playRule = playRule,
  303. playnum = 3,
  304. baseMulti = self.curJFBS,
  305. forbidProp = forbidProp,
  306. forbidVoice = forbidVoice,
  307. }
  308. -- 保存玩家的选择
  309. self:saveDefaultValues()
  310. local strGameInfo = json.encode(self.defaultValus)
  311. return juShu, strGameInfo
  312. end
  313. return CreateRoom