|
-
- local CreateRoom_xuyong = class("CreateRoom_xuyong", require("luaScript.Views.CreateRoom.CreateRoomItemBase"))
-
- --[[
- isCreateRoom和defaultValus决定了从哪里读取默认值
- isCreateRoom 为true时,从本地文件读取,defaultValus无效.
- 否则使用defaultValus的值
- defaultValus : 跟服务器strGameInfo对应的json对象
- --]]
- function CreateRoom_xuyong:ctor(defaultValus)
- CreateRoom_xuyong.super.ctor(self, defaultValus, "CreateRoom_xuyong.json");
-
- local ui = loadUI("res/ui/ui_chuangjian/zp_chuangjian_xuyong.ui");
- self.ui = ui;
- self:addChild(ui);
-
- self.RenShuRadioManager = 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.FenShuRadioManager = import("luaScript.Tools.RadioManager"):new();
- self.JuShuRadioManager = import("luaScript.Tools.RadioManager"):new();
- -- 其他选项
- self.otherCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new()
-
- self:onHideCestView() -- 隐藏cest的界面
- end
-
-
- function CreateRoom_xuyong: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_xuyong: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_xuyong: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_xuyong:onEnter()
- CreateRoom_xuyong.super.onEnter(self)
-
- -- 整理不同局数对应的房卡消耗
- local ttCost = {}
- local gameConfig = app.user:getGameConfig(GAME_IDS.xuyongDaEr);
- 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_4, 1); -- AA支付
- self.PayRadioManager:addItem(self.ui.Items.CheckBox_5, 0); -- 房主支付
-
- -- 设置默认数据
- local defaultValue = self:getDefaultValue("deductRule") or 1
- 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, 100); -- 100分
- self.FengDingRadioManager:addItem(self.ui.Items.CheckBox_7, 200); -- 200分
- self.FengDingRadioManager:addItem(self.ui.Items.CheckBox_10, 300); -- 300分
- self.FengDingRadioManager:addItem(self.ui.Items.CheckBox_14, 500); -- 500分
- self.FengDingRadioManager:addItem(self.ui.Items.CheckBox_17, 1000); -- 1000分
- self.FengDingRadioManager:addItem(self.ui.Items.CheckBox_18, 2000); -- 2000分
- self.FengDingRadioManager:addItem(self.ui.Items.CheckBox_25, 3000); -- 3000分
- self.FengDingRadioManager:addItem(self.ui.Items.CheckBox_26, 4000); -- 4000分
-
- -- 设置默认数据
- local defaultValue = self:getDefaultValue("highLimit") or 200
- self.FengDingRadioManager:setDefault(tonumber(defaultValue));
- end
-
- --快速成局说明
- self.ui.Items.ImageView_2:setVisible(false)
- self.ui.Items.Button_KSCJ:registerClick(function()
- playBtnEffect()
- self.ui.Items.ImageView_2:setVisible(not self.ui.Items.ImageView_2:isVisible())
- end)
-
-
- -- 翻倍 doubleRule
- if self.WanFARadioManager then
- self.wanfaValues =
- {
- [1] = {selectValue = 0x0001, unselectValue = 0x00},--自摸翻倍
- [2] = {selectValue = 0x0200, unselectValue = 0x00},--可无胡
- [3] = {selectValue = 0x0400, unselectValue = 0x00},--圈牌
- [4] = {selectValue = 0x0080, unselectValue = 0x00},--整胡翻倍
- [5] = {selectValue = 0x0008, unselectValue = 0x00},--放炮全赔
- [6] = {selectValue = 0x0100, unselectValue = 0x00},--查叫
- [7] = {selectValue = 0x0002, unselectValue = 0x00},--归翻倍
- [8] = {selectValue = 0x0800, unselectValue = 0x00},--单杀
- [9] = {selectValue = 0x0020, unselectValue = 0x00},--小家可看庄家牌
- [10] = {selectValue = 0x0040, unselectValue = 0x00},--可吃对家
- [11] = {selectValue = 0x0010, unselectValue = 0x00},--过张升番胡
- }
- self.WanFARadioManager:addItem(self.ui.Items.CheckBox_11, 2, self.wanfaValues[2].selectValue, self.wanfaValues[2].unselectValue);
- self.ui.Items.CheckBox_11:getParent():setTag(self.wanfaValues[2].selectValue)
- self.WanFARadioManager:addItem(self.ui.Items.CheckBox_12, 1, self.wanfaValues[1].selectValue, self.wanfaValues[1].unselectValue);
- self.ui.Items.CheckBox_12:getParent():setTag(self.wanfaValues[1].selectValue)
- self.WanFARadioManager:addItem(self.ui.Items.CheckBox_15, 4, self.wanfaValues[4].selectValue, self.wanfaValues[4].unselectValue);
- self.ui.Items.CheckBox_15:getParent():setTag(self.wanfaValues[4].selectValue)
- self.WanFARadioManager:addItem(self.ui.Items.CheckBox_19, 7, self.wanfaValues[7].selectValue, self.wanfaValues[7].unselectValue);
- self.ui.Items.CheckBox_19:getParent():setTag(self.wanfaValues[7].selectValue)
- self.WanFARadioManager:addItem(self.ui.Items.CheckBox_20, 5, self.wanfaValues[5].selectValue, self.wanfaValues[5].unselectValue);
- self.ui.Items.CheckBox_20:getParent():setTag(self.wanfaValues[5].selectValue)
- self.WanFARadioManager:addItem(self.ui.Items.CheckBox_13, 6, self.wanfaValues[6].selectValue, self.wanfaValues[6].unselectValue);
- self.ui.Items.CheckBox_13:getParent():setTag(self.wanfaValues[6].selectValue)
- --self.WanFARadioManager:addItem(self.ui.Items.CheckBox_21, 7, self.wanfaValues[7].selectValue, self.wanfaValues[7].unselectValue);
- --self.ui.Items.CheckBox_21:getParent():setTag(self.wanfaValues[7].selectValue)
- self.WanFARadioManager:addItem(self.ui.Items.CheckBox_22, 8, self.wanfaValues[8].selectValue, self.wanfaValues[8].unselectValue);
- self.ui.Items.CheckBox_22:getParent():setTag(self.wanfaValues[8].selectValue)
- self.WanFARadioManager:addItem(self.ui.Items.CheckBox_23, 9, self.wanfaValues[9].selectValue, self.wanfaValues[9].unselectValue);
- self.ui.Items.CheckBox_23:getParent():setTag(self.wanfaValues[9].selectValue)
- self.WanFARadioManager:addItem(self.ui.Items.CheckBox_24, 10, self.wanfaValues[10].selectValue, self.wanfaValues[10].unselectValue);
- self.ui.Items.CheckBox_24:getParent():setTag(self.wanfaValues[10].selectValue)
- self.WanFARadioManager:addItem(self.ui.Items.CheckBox_21, 11, self.wanfaValues[11].selectValue, self.wanfaValues[11].unselectValue);
- self.ui.Items.CheckBox_21:getParent():setTag(self.wanfaValues[11].selectValue)
-
- -- 设置默认状态
- local ttSelected = {}
-
- local rule = 0;
- for k,v in ipairs(self.wanfaValues) do
- if k ~= 7 and k ~= 8 and k ~= 10 then
- if rule == 0 then
- rule = v.selectValue;
- else
- rule = getNumOr(rule, v.selectValue)
- end
- end
- end
-
- local defaultValue = self:getDefaultValue("specialRule") or rule
- for k,v in pairs(self.wanfaValues) do
- if getNumBand(defaultValue, v.selectValue) > 0 then
- table.insert(ttSelected, k)
- end
- end
- self.WanFARadioManager:setDefault(ttSelected);
- end
-
- -- 人数
- self.hadHideFangShu = false
- if self.RenShuRadioManager then
- self.RenShuRadioManager:addItem(self.ui.Items.CheckBox_playerCount_1, 2) -- (2人)
- self.RenShuRadioManager:addItem(self.ui.Items.CheckBox_playerCount_2, 3) -- (3人)
- self.RenShuRadioManager:addItem(self.ui.Items.CheckBox_playerCount_3, 4) -- (4人)
- self.RenShuRadioManager:addItem(self.ui.Items.CheckBox_playerCount_4, -1) -- (快速成局)
- local defaultValue = self:getDefaultValue("playnum") or 3
- local startMode = self:getDefaultValue("startMode") or 0
- if startMode == 1 then
- defaultValue = -1
- end
- self.RenShuRadioManager:setDefault(defaultValue)
-
- self.curSelectedpcount = defaultValue
-
- --self.srcPosY = self.ui.Items.Layout_SiRenWanFa:getPositionY()
- --local newPosY = self.ui.Items.Layout_SiRenWanFa:getPositionY() + 80
-
- local callBack = function (value)
- for k,v in ipairs(self.ui.Items.Layout_Panel:getChildren()) do
- v:setVisible(true);
- end
- self.ui.Items.ImageView_10:setVisible(true)
- self.ui.Items.ImageView_12:setVisible(true)
- --self.ui.Items.Layout_SiRenWanFa:setVisible(false)
- --self.ui.Items.Layout_SiRenWanFa:setPositionY(self.srcPosY);
- if value == 2 then
- self.ui.Items.Layout_13:setVisible(false)
- self.ui.Items.Layout_14:setVisible(false)
- self.ui.Items.ImageView_12:setVisible(false)
- elseif value == 3 then
- self.ui.Items.Layout_14:setVisible(false)
- self.ui.Items.Layout_15:setVisible(false)
- self.ui.Items.ImageView_12:setVisible(false)
- elseif value == 4 then
- self.ui.Items.Layout_15:setVisible(false)
- self.ui.Items.ImageView_12:setVisible(false)
- --self.ui.Items.Layout_SiRenWanFa:setVisible(true)
- --self.ui.Items.Layout_SiRenWanFa:setPositionY(newPosY);
- elseif value == -1 then
- --self.ui.Items.Layout_SiRenWanFa:setVisible(true)
- end
-
- self.ui.Items.Layout_Panel:requestDoLayout();
- self.ui.Items.Layout_Panel:doLayout();
- end
- self.RenShuRadioManager:setCallback(callBack)
- callBack(defaultValue)
- end
-
- --分数
- if self.FenShuRadioManager then
- self.FenShuRadioManager:addItem(self.ui.Items.CheckBox_8, 1); -- 1/2/3
- self.FenShuRadioManager:addItem(self.ui.Items.CheckBox_9, 5); -- 5/10/15
- self.FenShuRadioManager:addItem(self.ui.Items.CheckBox_16, 10); -- 10/20/30
-
- -- 设置默认状态
- local defaultValue = self:getDefaultValue("scoreNum") or 5
- self.FenShuRadioManager:setDefault(defaultValue);
- end
-
- self:initOtherCheckBoxManager()
- self:initJiFenBeiShu()
- end
- ---
- -- 初始化其他选项
- -- @return
- --
- function CreateRoom_xuyong: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_ForbidChat, "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_xuyong: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_xuyong:updateJiFenBeiShu()
- 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 ~= 1)
- end
- --按钮加
- function CreateRoom_xuyong:onClickAdd()
- playBtnEffect()
- if not self.curJFBS then
- return
- end
- self.curJFBS = self.curJFBS + 1
- if self.curJFBS >= 100 then
- self.curJFBS = 100;
- end
- self:updateJiFenBeiShu()
- end
- --按钮减
- function CreateRoom_xuyong:onClickJian()
- playBtnEffect()
- if not self.curJFBS then
- return
- end
- self.curJFBS = self.curJFBS - 1
- if self.curJFBS <= 0 then
- self.curJFBS = 1
- end
- self:updateJiFenBeiShu()
- end
-
-
- function CreateRoom_xuyong:getRuleResult()
- local playnum = self.RenShuRadioManager:getResult()
- local payMode = self.PayRadioManager:getResult()
- local fengding = self.FengDingRadioManager:getResult();
- --local specialRule2 = self.WanFARadioManager:getResult2();
- local fenshu = self.FenShuRadioManager:getResult()
- local game_num = self.JuShuRadioManager:getResult()
-
- local startMode = 0
- if playnum == -1 then--选择的是快速组局
- startMode = 1
- end
-
- local specialRule = 0;
- for k,v in ipairs(self.ui.Items.Layout_Panel:getChildren()) do
- if v:isVisible() and v:getChildren()[1]:getSelectedState() then
- local value = v:getTag();
- specialRule = getNumOr(specialRule, value);
- end
- end
-
- local other = self.otherCheckBoxManager:getResult2()
- local forbidProp = other["forbidProp"]
- local forbidVoice = other["forbidVoice"]
- self.defaultValus =
- {
- gamerule = 1;
- playnum = playnum;
- deductRule = payMode;
- highLimit = fengding;
- specialRule = specialRule;
- scoreNum = fenshu,
- game_num = game_num,
- areaNo = app.user.areano;
- startMode = startMode;
- baseMulti = self.curJFBS,
- forbidProp = forbidProp,
- forbidVoice = forbidVoice,
- }
-
- -- 保存玩家的选择
- self:saveDefaultValues()
-
- local strGameInfo = json.encode(self.defaultValus)
- return game_num, strGameInfo
- end
-
- return CreateRoom_xuyong
|