local CreateRoom_zgwrddz = class("CreateRoom_zgwrddz", require("luaScript.Views.CreateRoom.CreateRoomItemBase")) --[[ isCreateRoom和defaultValus决定了从哪里读取默认值 isCreateRoom 为true时,从本地文件读取,defaultValus无效. 否则使用defaultValus的值 defaultValus : 跟服务器strGameInfo对应的json对象 --]] function CreateRoom_zgwrddz:ctor(defaultValues) CreateRoom_zgwrddz.super.ctor(self, defaultValues, "CreateRoom_zgwrddz.json"); local ui = loadUI("res/ui/ui_chuangjian/pk_chuangjian_zgwrddz.ui"); self.ui = ui; self:addChild(ui); self.JuShuRadioManager = import("luaScript.Tools.RadioManager"):new(); self.PayRadioManager = import("luaScript.Tools.RadioManager"):new(); self.FengDingRadioManager = import("luaScript.Tools.RadioManager"):new(); self.WanFARadioManager = import("luaScript.Tools.CheckBoxManager"):new(); self.JieSuanCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new(); -- 人数 - 单选 self.pcountRadioManager = import("luaScript.Tools.RadioManager"):new() -- 加底 self.jiaDiRadioManager = import("luaScript.Tools.RadioManager"):new() -- 其他选项 self.otherCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new() self:onHideCestView() -- 隐藏cest的界面 end function CreateRoom_zgwrddz: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_zgwrddz: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_zgwrddz: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.requireCards or 0 elseif payMode == 1 then return costInfo.requireCardsAA or 0 end end end return 0 end function CreateRoom_zgwrddz:onEnter() CreateRoom_zgwrddz.super.onEnter(self) -- 整理不同局数对应的房卡消耗 local ttCost = {} local gameConfig = app.user:getGameConfig(GAME_IDS.zgWuRenDouDiZhu); 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 ttCost[gameRound] = { requireCards = arrRequireCards[idx], requireCardsAA = arrRequireCardsAA[idx], } end end self.cost = ttCost -- 玩家选择局数后,更新房卡消耗 local function updateCost(gameRound) local costInfo = ttCost[gameRound] if costInfo then self.ui.Items.Text_FangZhu:setText(tostring(costInfo.requireCards or 0)) self.ui.Items.Text_AAPay:setText(tostring(costInfo.requireCardsAA or 0)) end end -- 房费 deductRule if self.PayRadioManager then self.PayRadioManager:addItem(self.ui.Items.CheckBox_AAPay, 1); -- AA支付 self.PayRadioManager:addItem(self.ui.Items.CheckBox_FangZhu, 0);-- 房主支付 -- 设置默认数据 local defaultValue = self:getDefaultValue("deductRule") or 0 self.PayRadioManager:setDefault(tonumber(defaultValue)); --通知创建界面更新显示 local function dispatchUpdateCost() app:dispatchEvent({name = "onChangePayMode"}) end self.PayRadioManager:setCallback(dispatchUpdateCost); end -- 封顶 if self.FengDingRadioManager then self.FengDingRadioManager:addItem(self.ui.Items.CheckBox_6, 30); -- 30倍封顶 self.FengDingRadioManager:addItem(self.ui.Items.CheckBox_7, 60); -- 60倍封顶 -- 设置默认数据 local defaultValue = self:getDefaultValue("multLimit") or 30 self.FengDingRadioManager:setDefault(tonumber(defaultValue)); end --先小后大选牌说明 self.ui.Items.ImageView_XXHDJP:setVisible(false) self.ui.Items.Button_XXHDJP:registerClick(function() self.ui.Items.ImageView_XXHDJP:setVisible(not self.ui.Items.ImageView_XXHDJP:isVisible()) end) -- 设置默认数据 local spDFValue = self:getDefaultValue("playRule") or 0x00 -- 玩法 specialRule if self.JieSuanCheckBoxManager then local values = { --[1] = {selectValue = 0x00, unselectValue = 0x00},--加底 [1] = {selectValue = 0x04, unselectValue = 0x00},--加倍 [2] = {selectValue = 0x08, unselectValue = 0x00},--先小后大叫牌 } --self.JieSuanCheckBoxManager:addItem(self.ui.Items.CheckBox_wanfa_1, 1, values[1].selectValue, values[1].unselectValue); -- 加底 self.JieSuanCheckBoxManager:addItem(self.ui.Items.CheckBox_wanfa_1, 1, values[1].selectValue, values[1].unselectValue); -- 加倍 self.JieSuanCheckBoxManager:addItem(self.ui.Items.CheckBox_wanfa_2, 2, values[2].selectValue, values[2].unselectValue); -- 先小后大叫牌 local ttSelected = {} for k,v in pairs(values) do if getNumBand(spDFValue, v.selectValue) > 0 then table.insert(ttSelected, k) end end self.JieSuanCheckBoxManager:setDefault(ttSelected); --[[if spDFValue > 0 and (getNumBand(spDFValue, 0x01) > 0 or getNumBand(spDFValue, 0x02) > 0) then self.ui.Items.CheckBox_wanfa_1:setSelectedState(true) end --选择加底显示选项1,2 local function updateCreateView() if self.ui.Items.CheckBox_wanfa_1:getSelectedState() == true then self.ui.Items.Layout_jiadi:setVisible(true) else self.ui.Items.Layout_jiadi:setVisible(false) end self.ui.Items.Layout_1:requestDoLayout(); self.ui.Items.Layout_1:doLayout(); end self.JieSuanCheckBoxManager:setCallback(updateCreateView); updateCreateView();--]] end local jiadifen = self:getDefaultValue("jiadifen") or 0x01 -- 加底 if self.jiaDiRadioManager then self.jiaDiRadioManager:addItem(self.ui.Items.CheckBox_jiadi_0, 0x00); -- 加底1 self.jiaDiRadioManager:addItem(self.ui.Items.CheckBox_jiadi_1, 0x01); -- 加底1 self.jiaDiRadioManager:addItem(self.ui.Items.CheckBox_jiadi_2, 0x02); -- 加底2 self.jiaDiRadioManager:setDefault(jiadifen); --self.jiaDiRadioManager:setDefault(tonumber(defaultValue)); end --[[if self.WanFARadioManager then local values = { [1] = {selectValue = 0x0001, unselectValue = 0x00},--自摸翻倍 [2] = {selectValue = 0x0002, unselectValue = 0x00},--归翻倍 [3] = {selectValue = 0x0004, unselectValue = 0x00},--可三招胡 [4] = {selectValue = 0x0008, unselectValue = 0x00},--放炮全赔 [5] = {selectValue = 0x0010, unselectValue = 0x00},--过胡升番可胡 [6] = {selectValue = 0x0020, unselectValue = 0x00},--小家可看牌 [7] = {selectValue = 0x0040, unselectValue = 0x00},--可吃对家 } self.WanFARadioManager:addItem(self.ui.Items.CheckBox_11, 1, values[1].selectValue, values[1].unselectValue); -- 自摸翻倍 self.WanFARadioManager:addItem(self.ui.Items.CheckBox_12, 2, values[3].selectValue, values[3].unselectValue); -- 可三招胡 self.WanFARadioManager:addItem(self.ui.Items.CheckBox_15, 3, values[2].selectValue, values[2].unselectValue); -- 归翻倍 self.WanFARadioManager:addItem(self.ui.Items.CheckBox_13, 4, values[4].selectValue, values[4].unselectValue); -- 放炮包赔 self.WanFARadioManager:addItem(self.ui.Items.CheckBox_19, 5, values[5].selectValue, values[5].unselectValue); -- 过张升番胡 self.WanFARadioManager:addItem(self.ui.Items.CheckBox_20, 6, values[6].selectValue, values[6].unselectValue); -- 小家可看牌 self.WanFARadioManager:addItem(self.ui.Items.CheckBox_17, 7, values[7].selectValue, values[7].unselectValue); -- 可吃对家 local rule = 0; for k,v in ipairs(values) do if k ~= 7 then if rule == 0 then rule = v.selectValue; else rule = getNumOr(rule, v.selectValue) end end end -- 设置默认状态 local ttSelected = {} local defaultValue = self:getDefaultValue("specialRule") or rule for k,v in pairs(values) do if getNumBand(defaultValue, v.selectValue) > 0 then table.insert(ttSelected, k) end end self.WanFARadioManager:setDefault(ttSelected); end--]] self:initOtherCheckBoxManager() self:initJiFenBeiShu() self:initLayoutEvent() end -- 面板的点击事件,点击面板后,隐藏所有提示 function CreateRoom_zgwrddz:initLayoutEvent() self.ui.Items.Layout_1:registerClick(function() local buttons = { {buttonName = "Button_JFBS", tipsName = "ImageView_JFBS"}, {buttonName = "Button_XXHDJP", tipsName = "ImageView_XXHDJP"}, }; -- 隐藏其他提示信息 for k, v in ipairs(buttons) do local tipsNode = self.ui.Items[v.tipsName] tipsNode:setVisible(false) end end) end --- -- 初始化其他选项 -- @return -- function CreateRoom_zgwrddz:initOtherCheckBoxManager () if not self.otherCheckBoxManager then return end -- self.otherCheckBoxManager:addItem(self.ui.Items.CheckBox_ForbidProp, "forbidProp", 1, 0) -- local forbidProp = self:getDefaultValue("forbidProp") or 0 -- local defaults = {} -- if forbidProp > 0 then -- table.insert(defaults, "forbidProp") -- end -- self.otherCheckBoxManager:setDefault(defaults) 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_zgwrddz: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_zgwrddz: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_zgwrddz: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_zgwrddz: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_zgwrddz:getRuleResult() local game_num = self.JuShuRadioManager:getResult() local payMode = self.PayRadioManager:getResult() local multLimit = self.FengDingRadioManager:getResult(); local jiadijiabei = self.JieSuanCheckBoxManager:getResult(); --选择加底 加倍 local jiadifen = self.jiaDiRadioManager:getResult(); --选择的是加底1 还是 加底2 local playnum = self.pcountRadioManager:getResult()--玩家人数 local startMode = 0 if playnum == -1 then--选择的是快速组局 --playnum = 4 startMode = 1 end local playRule = 0 for _,v in pairs(jiadijiabei) do playRule = getNumOr(playRule, v.value) end --选择了加底 --if self.ui.Items.CheckBox_wanfa_1:getSelectedState() == true then playRule = getNumOr(playRule, jiadifen) --end local other = self.otherCheckBoxManager:getResult2() local forbidProp = other["forbidProp"] local forbidVoice = other["forbidVoice"] self.defaultValus = { gamerule = 1; game_num = game_num; --scoreRule = scoreRule, multLimit = multLimit; --specialRule = specialRule; deductRule = payMode; areaNo = app.user.areano; playRule = playRule; jiadifen = jiadifen; --startMode = startMode; --playnum = playnum; baseMulti = self.curJFBS, forbidProp = forbidProp, forbidVoice = forbidVoice, } -- 保存玩家的选择 self:saveDefaultValues() local strGameInfo = json.encode(self.defaultValus) return game_num, strGameInfo end return CreateRoom_zgwrddz