local CreateRoom_BZP = class("CreateRoom_BZP", require("luaScript.Views.CreateRoom.CreateRoomItemBase")) --[[ isCreateRoom和defaultValus决定了从哪里读取默认值 isCreateRoom 为true时,从本地文件读取,defaultValus无效. 否则使用defaultValus的值 defaultValus : 跟服务器strGameInfo对应的json对象 --]] function CreateRoom_BZP:ctor(defaultValus) CreateRoom_BZP.super.ctor(self, defaultValus, "CreateRoom_BZP.json") local ui = loadUI("res/ui/ui_chuangjian/pk_chuanjian_bzp.ui") self.ui = ui self:addChild(ui) local gameConfig = getSubGameConfig(GAME_IDS.BanZiPao) self.curPlayType = 0 -- 付费方式 self.payRadioManager = import("luaScript.Tools.RadioManager"):new() -- 人数 - 单选 self.renShuRadioManager = import("luaScript.Tools.RadioManager"):new() -- 玩法 - 单选 self.diFenRadioManager = import("luaScript.Tools.RadioManager"):new() self.JiaoPaiRadioManager = import("luaScript.Tools.RadioManager"):new(); self.fanbaoCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new() self.baopaiCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new() self.geziweizhanCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new() self.buxipaiCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new() self.boomCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new() self.daiHuaPaiCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new() self.showLeftCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new() self.jinChatCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new() -- 其他选项 self.otherCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new() self.gameId = GAME_IDS.BanZiPao self:initRadio() self:onHideCestView() -- 隐藏cest的界面 end function CreateRoom_BZP: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_BZP: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_BZP: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_BZP:initRadio() -- 整理不同局数对应的房卡消耗 local ttCost = {} local gameConfig = app.user:getGameConfig(self.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 ttCost[gameRound] = { requireCards = arrRequireCards[idx], requireCardsAA = arrRequireCardsAA[idx], } end end self.cost = ttCost --房费 if self.payRadioManager then self.payRadioManager:addItem(self.ui.Items.CheckBox_FangZhu, 0) self.payRadioManager:addItem(self.ui.Items.CheckBox_AAPay, 1) --初始化默认数据 local default = self:getDefaultValue("deductRule") or 0 self.payRadioManager:setColorSwitch(true) self.payRadioManager:setDefault(default) --通知创建界面更新显示 local function dispatchUpdateCost() app:dispatchEvent({name = "onChangePayMode"}) end self.payRadioManager:setCallback(dispatchUpdateCost) end --人数 if self.renShuRadioManager then self.renShuRadioManager:addItem(self.ui.Items.CheckBox_playerCount_1, 2) self.renShuRadioManager:addItem(self.ui.Items.CheckBox_playerCount_2, 3) self.renShuRadioManager:addItem(self.ui.Items.CheckBox_playerCount_3, 4) self.renShuRadioManager:addItem(self.ui.Items.CheckBox_playerCount_4, 5) local defaultValue = self:getDefaultValue("playerNum") or 5 self.renShuRadioManager:setColorSwitch(true) self.renShuRadioManager:setDefault(defaultValue) self.renShuRadioManager:setCallback(function () playBtnEffect() end) self.ui.Items.ImageView_zhaniao_1:setVisible(false) self.ui.Items.Button_zhaniao_1:registerClick(function () playBtnEffect() self.ui.Items.ImageView_zhaniao_1:setVisible(not self.ui.Items.ImageView_zhaniao_1:isVisible()) end) end if self.diFenRadioManager then self.diFenRadioManager:addItem(self.ui.Items.CheckBox_playerCount_5, 1) self.diFenRadioManager:addItem(self.ui.Items.CheckBox_playerCount_6, 2) self.diFenRadioManager:addItem(self.ui.Items.CheckBox_playerCount_7, 5) self.diFenRadioManager:addItem(self.ui.Items.CheckBox_playerCount_8, 10) self.diFenRadioManager:addItem(self.ui.Items.CheckBox_playerCount_9, 20) local defaultValue = self:getDefaultValue("baseScore") or 1 self.diFenRadioManager:setColorSwitch(true) self.diFenRadioManager:setDefault(defaultValue) self.diFenRadioManager:setCallback(function () playBtnEffect() end) end if self.JiaoPaiRadioManager then self.JiaoPaiRadioManager:addItem(self.ui.Items.CheckBox_FangZhu_1, 1) self.JiaoPaiRadioManager:addItem(self.ui.Items.CheckBox_AAPay_1, 2) local defaultValue = self:getDefaultValue("jiaoPaiType") or 1 self.JiaoPaiRadioManager:setColorSwitch(true) self.JiaoPaiRadioManager:setDefault(defaultValue) self.JiaoPaiRadioManager:setCallback(function () playBtnEffect() end) self.ui.Items.ImageView_zhaniao_2:setVisible(false) self.ui.Items.ImageView_zhaniao_3:setVisible(false) self.ui.Items.Button_zhaniao_2:registerClick(function () playBtnEffect() self.ui.Items.ImageView_zhaniao_2:setVisible(not self.ui.Items.ImageView_zhaniao_2:isVisible()) end) self.ui.Items.Button_zhaniao_3:registerClick(function () playBtnEffect() self.ui.Items.ImageView_zhaniao_3:setVisible(not self.ui.Items.ImageView_zhaniao_3:isVisible()) end) end self.ui.Items.Layout:registerClick(function () if self.ui.Items.ImageView_zhaniao_1:isVisible() or self.ui.Items.ImageView_zhaniao_2:isVisible() or self.ui.Items.ImageView_zhaniao_3:isVisible() then playBtnEffect() end self.ui.Items.ImageView_zhaniao_1:setVisible(false) self.ui.Items.ImageView_zhaniao_2:setVisible(false) self.ui.Items.ImageView_zhaniao_3:setVisible(false) end) if self.fanbaoCheckBoxManager then self.fanbaoCheckBoxManager:addItem(self.ui.Items.CheckBox_type_1, 1,1,0); -- 设置默认状态 local tValues = {} local default = self:getDefaultValue("fanBao") or 1 table.insert(tValues, default) self.fanbaoCheckBoxManager:setDefault(tValues) end if self.baopaiCheckBoxManager then self.baopaiCheckBoxManager:addItem(self.ui.Items.CheckBox_type_2, 1,1,0); -- 设置默认状态 local tValues = {} local default = self:getDefaultValue("firstBao") or 1 table.insert(tValues, default) self.baopaiCheckBoxManager:setDefault(tValues) end if self.geziweizhanCheckBoxManager then self.geziweizhanCheckBoxManager:addItem(self.ui.Items.CheckBox_type_3, 1,1,0); -- 设置默认状态 local tValues = {} local default = self:getDefaultValue("fightAlone") or 0 table.insert(tValues, default) self.geziweizhanCheckBoxManager:setDefault(tValues) end if self.buxipaiCheckBoxManager then self.buxipaiCheckBoxManager:addItem(self.ui.Items.CheckBox_type_6, 1,1,0); -- 设置默认状态 local tValues = {} local default = self:getDefaultValue("unshuffle") or 0 table.insert(tValues, default) self.buxipaiCheckBoxManager:setDefault(tValues) end if self.boomCheckBoxManager then self.boomCheckBoxManager:addItem(self.ui.Items.CheckBox_type_7, 1,1,0); -- 设置默认状态 local tValues = {} local default = self:getDefaultValue("bombScore") or 0 table.insert(tValues, default) self.boomCheckBoxManager:setDefault(tValues) end if self.daiHuaPaiCheckBoxManager then self.daiHuaPaiCheckBoxManager:addItem(self.ui.Items.CheckBox_type_8, 1,1,0); -- 设置默认状态 local tValues = {} local default = self:getDefaultValue("withFlower") or 0 table.insert(tValues, default) self.daiHuaPaiCheckBoxManager:setDefault(tValues) end if self.showLeftCheckBoxManager then self.showLeftCheckBoxManager:addItem(self.ui.Items.CheckBox_type_9, 1,1,0); -- 设置默认状态 local tValues = {} local default = self:getDefaultValue("reNumShow") or 1 table.insert(tValues, default) self.showLeftCheckBoxManager:setDefault(tValues) end if self.jinChatCheckBoxManager then self.jinChatCheckBoxManager:addItem(self.ui.Items.CheckBox_type_10, 1,1,0); -- 设置默认状态 local tValues = {} local default = self:getDefaultValue("jzdybq") or 0 table.insert(tValues, default) self.jinChatCheckBoxManager:setDefault(tValues) self.ui.Items.CheckBox_type_10:setVisible(false) end self:initOtherCheckBoxManager() self:initJiFenBeiShu() end --- -- 初始化其他选项 -- @return -- function CreateRoom_BZP: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_BZP: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) end --更新积分倍数 function CreateRoom_BZP: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_BZP: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_BZP: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_BZP:getRuleResult() local result = {} result.gameid = self.gameId result.gamerule = 0 result.enterFlag = 0;--游戏中是否可以中途进入,不允许,传0就可以了 result.game_num = 0--局数 result.deductRule = self.payRadioManager:getResult()--房费0房主1aa result.playerNum = self.renShuRadioManager:getResult()--玩家人数 result.playnum = result.playerNum == 5 and 4 or result.playerNum result.baseScore = self.diFenRadioManager:getResult() result.jiaoPaiType = self.JiaoPaiRadioManager:getResult() result.fanBao = self.fanbaoCheckBoxManager:getResult()[1].value result.withFlower = self.daiHuaPaiCheckBoxManager:getResult()[1].value result.firstBao = self.baopaiCheckBoxManager:getResult()[1].value result.fightAlone = self.geziweizhanCheckBoxManager:getResult()[1].value result.unshuffle = self.buxipaiCheckBoxManager:getResult()[1].value result.bombScore = self.boomCheckBoxManager:getResult()[1].value result.reNumShow = self.showLeftCheckBoxManager:getResult()[1].value result.jzdybq = self.jinChatCheckBoxManager:getResult()[1].value result.baseMulti = self.curJFBS local other = self.otherCheckBoxManager:getResult2() local forbidProp = other["forbidProp"] local forbidVoice = other["forbidVoice"] result.forbidProp = forbidProp result.forbidVoice = forbidVoice self.defaultValus = result -- 保存玩家的选择 self:saveDefaultValues() local strGameInfo = json.encode(self.defaultValus); return result.game_num, strGameInfo end function CreateRoom_BZP:onEnter() CreateRoom_BZP.super.onEnter(self) -- 整理不同局数对应的房卡消耗 end return CreateRoom_BZP