local CreateRoom = class("CreateRoom_28_1", require("luaScript.Views.CreateRoom.CreateRoomItemBase")) function CreateRoom:ctor( defaultValues) CreateRoom.super.ctor(self, defaultValues, "CreateRoom_28_1.json") local ui = loadUI("res/ui/ui_chuangjian/pk_chuangjian_28_1.ui") self.ui = ui self:addChild(ui) self:initCreateRoomCost(); -- -- 局数 -- self.RadioManager_1 = import("luaScript.Tools.RadioManager"):new() -- 钻石 self.PayRadioManager = import("luaScript.Tools.RadioManager"):new() -- 倍数 self.RadioManager_3 = import("luaScript.Tools.RadioManager"):new() -- 三带 self.CheckBoxManager_6 = import("luaScript.Tools.CheckBoxManager"):new() -- 四带 self.CheckBoxManager_7 = import("luaScript.Tools.CheckBoxManager"):new() -- 飘分 self.RadioManager_8 = import("luaScript.Tools.RadioManager"):new() -- 其它 self.CheckBoxManager_9 = import("luaScript.Tools.CheckBoxManager"):new() self.otherCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new() self:onHideCestView() -- 隐藏cest的界面 end function CreateRoom:onHideCestView() if self.ui.Items.Button_pay0_tips then self.ui.Items.Button_pay0_tips:setVisible(false) end if self.ui.Items.Button_pay1_tips then self.ui.Items.Button_pay1_tips:setVisible(false) end if self.ui.Items.ImageView_pay0_tips then self.ui.Items.ImageView_pay0_tips:setVisible(false) end if self.ui.Items.ImageView_pay1_tips then self.ui.Items.ImageView_pay1_tips:setVisible(false) end end function CreateRoom:onShowCestView() if self.ui.Items.Text_pay0 then self.ui.Items.Text_pay0:setText("免费") end if self.ui.Items.Text_pay1 then self.ui.Items.Text_pay1:setText("自费") end if self.ui.Items.Button_pay0_tips then self.ui.Items.Button_pay0_tips:setVisible(true) end if self.ui.Items.Button_pay1_tips then self.ui.Items.Button_pay1_tips:setVisible(true) end if self.ui.Items.ImageView_pay0_tips then self.ui.Items.ImageView_pay0_tips:setVisible(false) end if self.ui.Items.Button_pay0_tips then self.ui.Items.Button_pay0_tips:registerClick(function() if self.ui.Items.ImageView_pay0_tips then local isVisible = not self.ui.Items.ImageView_pay0_tips:isVisible() self.ui.Items.ImageView_pay0_tips:setVisible(isVisible) end end) end if self.ui.Items.ImageView_pay1_tips then self.ui.Items.ImageView_pay1_tips:setVisible(false) end if self.ui.Items.Button_pay1_tips then self.ui.Items.Button_pay1_tips:registerClick(function() if self.ui.Items.ImageView_pay1_tips then local isVisible = not self.ui.Items.ImageView_pay1_tips:isVisible() self.ui.Items.ImageView_pay1_tips:setVisible(isVisible) end end) end end function CreateRoom:onEnter() CreateRoom.super.onEnter(self) -- 房费 if self.PayRadioManager then self.PayRadioManager:addItem(self.ui.Items.CheckBox_2_1, 0) -- 房主支付 self.PayRadioManager:addItem(self.ui.Items.CheckBox_2_2, 1) -- AA支付 local default = self:getDefaultValue("deductRule") or 0 self.PayRadioManager:setDefault(default) self.PayRadioManager:setCallback(function () playBtnEffect() app:dispatchEvent({name = "onChangePayMode"}) end) end -- 倍数 if self.RadioManager_3 then self.RadioManager_3:addItem(self.ui.Items.CheckBox_3_1, 8) -- 8倍 self.RadioManager_3:addItem(self.ui.Items.CheckBox_3_2, 16) -- 16倍 self.RadioManager_3:addItem(self.ui.Items.CheckBox_3_3, 32) -- 32倍 self.RadioManager_3:addItem(self.ui.Items.CheckBox_3_4, 0) -- 无限制 local default = self:getDefaultValue("multLimit") or 8 self.RadioManager_3:setDefault(default) self.RadioManager_3:setCallback(function () playBtnEffect() end) end -- 三带 if self.CheckBoxManager_6 then local values = { [1] = {selectValue = 0x01, unselectValue = 0}, [2] = {selectValue = 0x02, unselectValue = 0}, } self.CheckBoxManager_6:addItem(self.ui.Items.CheckBox_6_1, values[1].selectValue, values[1].selectValue, values[1].unselectValue) self.CheckBoxManager_6:addItem(self.ui.Items.CheckBox_6_2, values[2].selectValue, values[2].selectValue, values[2].unselectValue) -- 设置默认状态 local tValues = {} local default = self:getDefaultValue("sanDai") or getNumOr(values[1].selectValue, values[2].selectValue) for k,v in ipairs(values) do if getNumBand(default, v.selectValue) > 0 then table.insert(tValues, v.selectValue) end end self.CheckBoxManager_6:setDefault(tValues) end -- 四带 if self.CheckBoxManager_7 then local values = { [1] = {selectValue = 0x02, unselectValue = 0}, [2] = {selectValue = 0x08, unselectValue = 0}, } self.CheckBoxManager_7:addItem(self.ui.Items.CheckBox_7_1, values[1].selectValue, values[1].selectValue, values[1].unselectValue) self.CheckBoxManager_7:addItem(self.ui.Items.CheckBox_7_2, values[2].selectValue, values[2].selectValue, values[2].unselectValue) -- 设置默认状态 local tValues = {} local default = self:getDefaultValue("siDai") or getNumOr(values[1].selectValue, values[2].selectValue) for k,v in ipairs(values) do if getNumBand(default, v.selectValue) > 0 then table.insert(tValues, v.selectValue) end end self.CheckBoxManager_7:setDefault(tValues) end -- 飘分 if self.RadioManager_8 then self.RadioManager_8:addItem(self.ui.Items.CheckBox_8_1, 0) self.RadioManager_8:addItem(self.ui.Items.CheckBox_8_2, 5) self.RadioManager_8:addItem(self.ui.Items.CheckBox_8_3, 10) -- 设置默认状态 local default = self:getDefaultValue("piaoType") or 0 self.RadioManager_8:setDefault(default) self.RadioManager_8:setCallback(function () playBtnEffect() end) end -- 其它 if self.CheckBoxManager_9 then local values = { [1] = {selectValue = 0x01, unselectValue = 0}, [2] = {selectValue = 0x02, unselectValue = 0}, [3] = {selectValue = 0x04, unselectValue = 0}, [4] = {selectValue = 0x08, unselectValue = 0}, } self.CheckBoxManager_9:addItem(self.ui.Items.CheckBox_9_1, values[1].selectValue, values[1].selectValue, values[1].unselectValue) -- 屏蔽... self.CheckBoxManager_9:addItem(self.ui.Items.CheckBox_9_2, values[2].selectValue, values[2].selectValue, values[2].unselectValue) -- 加倍... self.CheckBoxManager_9:addItem(self.ui.Items.CheckBox_9_3, values[3].selectValue, values[3].selectValue, values[3].unselectValue) -- 剩余... self.CheckBoxManager_9:addItem(self.ui.Items.CheckBox_9_4, values[4].selectValue, values[4].selectValue, values[4].unselectValue) -- 加倍超时... self.ui.Items.CheckBox_9_1:setVisible(false) -- 设置默认状态 local tValues = {} local default = self:getDefaultValue("extPlay") or values[2].selectValue for k,v in ipairs(values) do if getNumBand(default, v.selectValue) > 0 then table.insert(tValues, v.selectValue) end end self.CheckBoxManager_9:setDefault(tValues) end self:initLayoutEvent() self:initJiFenBeiShu() self:initOtherCheckBoxManager() end function CreateRoom:initOtherCheckBoxManager () if not self.otherCheckBoxManager then return end self.otherCheckBoxManager:addItem(self.ui.Items.CheckBox_ForbidProp, "forbidProp", 1, 0)--屏蔽快捷语与道具 self.otherCheckBoxManager:addItem(self.ui.Items.CheckBox_ForbidVoice, "forbidVoice", 1, 0)--屏蔽语音 local forbidProp = self:getDefaultValue("forbidProp") or 0 local forbidVoice = self:getDefaultValue("forbidVoice") or 0 local defaults = {} if forbidProp > 0 then table.insert(defaults, "forbidProp") end if forbidVoice == 1 then table.insert(defaults, "forbidVoice") end self.otherCheckBoxManager:setDefault(defaults) end -- 面板的点击事件,点击面板后,隐藏所有提示 function CreateRoom:initLayoutEvent() self.ui.Items.Layout_liuzhou:registerClick(function() local buttons = { {buttonName = "Button_JFBS", tipsName = "ImageView_JFBS"}, }; -- 隐藏其他提示信息 for k, v in ipairs(buttons) do local tipsNode = self.ui.Items[v.tipsName] tipsNode:setVisible(false) end end) end function CreateRoom:initCreateRoomCost () -- 整理不同局数对应的房卡消耗 local payTypes={} local gameConfig = app.user:getGameConfig(GAME_IDS.DouDiZhu)--app.gameId); if gameConfig then local arrGameRound = toNumberArray(",")(gameConfig.gameRound) local arrRequireCards = toNumberArray(",")(gameConfig.requireCards) local arrRequireCardsAA = toNumberArray(",")(gameConfig.AArequireCards) for idx, gameRound in ipairs(arrGameRound) do payTypes[gameRound] = { roomCard = arrRequireCards[idx], roomCardAA = arrRequireCardsAA[idx], } end end self.cost = payTypes end function CreateRoom:getCreateRoomCost (jushu) if self.cost then local costInfo = self.cost[jushu] if costInfo then local payMode = self.PayRadioManager:getResult() if payMode == 0 then return costInfo.roomCard or 0 elseif payMode == 1 then return costInfo.roomCardAA or 0 end end end return 0 end -- 初始化积分倍数 function CreateRoom:initJiFenBeiShu() self.ui.Items.Button_jia:registerClick(handler(self, self.onClickAdd)) self.ui.Items.Button_jian:registerClick(handler(self, self.onClickJian)) self.curJFBS = self:getDefaultValue("baseMulti") or 1; self:updateJiFenBeiShu() --积分倍数说明 self.ui.Items.ImageView_JFBS:setVisible(false) self.ui.Items.Button_JFBS:registerClick(function() self.ui.Items.ImageView_JFBS:setVisible(not self.ui.Items.ImageView_JFBS:isVisible()) end) -- self.ui.Items.Layout_JiFenBeiShu:setVisible(false) end --更新积分倍数 function CreateRoom:updateJiFenBeiShu() self.curJFBS = self.curJFBS >= 1.0 and math.floor(self.curJFBS) or self.curJFBS; self.ui.Items.Text_jifen:setText(self.curJFBS) self.ui.Items.Button_jia:setEnabled(self.curJFBS ~= 100) self.ui.Items.Button_jian:setEnabled(self.curJFBS ~= 0.1) end --按钮加 function CreateRoom:onClickAdd() playBtnEffect() if not self.curJFBS then return end if self.curJFBS >= 1.0 then self.curJFBS = self.curJFBS + 1.0 else self.curJFBS = self.curJFBS + 0.1 end if self.curJFBS >= 100 then self.curJFBS = 100; end self:updateJiFenBeiShu() end --按钮减 function CreateRoom:onClickJian() playBtnEffect() if not self.curJFBS then return end if self.curJFBS <= 1.0 then self.curJFBS = self.curJFBS - 0.1 else self.curJFBS = self.curJFBS - 1.0 end if self.curJFBS <= 0.1 then self.curJFBS = 0.1 end self:updateJiFenBeiShu() end function CreateRoom:getRuleResult() -- -- 局数 -- local juShu = self.RadioManager_1:getResult() -- 钻石 local deductRule = self.PayRadioManager:getResult() -- 倍数 local multLimit = self.RadioManager_3:getResult() -- 三带 local sanDaiList = self.CheckBoxManager_6:getResult() local sanDai = 0 for _,v in pairs(sanDaiList) do sanDai = getNumOr(sanDai, v.value) end -- 四带 local siDaiList = self.CheckBoxManager_7:getResult() local siDai = 0 for _,v in pairs(siDaiList) do siDai = getNumOr(siDai, v.value) end -- 飘分 local piaoType = self.RadioManager_8:getResult() -- 其它 local extPlayList = self.CheckBoxManager_9:getResult() local extPlay = 0 for _,v in pairs(extPlayList) do extPlay = getNumOr(extPlay, v.value) end extPlayList = self.CheckBoxManager_9:getResult2() -- local forbidProp = extPlayList[1] local other = self.otherCheckBoxManager:getResult2() local forbidProp = other["forbidProp"] local forbidVoice = other["forbidVoice"] self.defaultValus = { gameid = self.gameid, gamerule = 1, game_num = juShu, deductRule= deductRule, multLimit = multLimit, lordType = 0, nobLord = 0, sanDai = sanDai, siDai = siDai, extPlay = extPlay, piaoType = piaoType, baseMulti = self.curJFBS, forbidProp = forbidProp, forbidVoice = forbidVoice, } -- 保存玩家的选择 self:saveDefaultValues() local strGameInfo = json.encode(self.defaultValus) return juShu, strGameInfo end return CreateRoom